Методическое пособие по
курсу Информатика. Python
Муртузалиева А.А.
Содержание
Лабораторная работа 1
Введение в язык программирования Python
Лабораторная работа 2
Математические операции в Python
Лабораторная работа 3
Структура ветвление в Python
Лабораторная работа 4
Работа с циклами в Python
Лабораторная работа 5
Работа со строками в Python
Лабораторная работа 7
Функции в Python
Лабораторная работа 8. Работа с двумерными массивами (вложенные
списки).
Лабораторная работа 1 Введение в язык программирования Python
Лабораторная работа 2 Математические
операции в Python
Цель работы: познакомиться с основными математическими операциями в
Python Язык Python, благодаря наличию огромного количества
библиотек для решения разного рода вычислительных задач, сегодня является
конкурентом таким пакетам как Matlab и Octave. Запущенный в интерактивном
режиме, он, фактически, превращается в мощный калькулятор. В этом уроке речь
пойдет об арифметических операциях, доступных в данном
языке Арифметические операции изучим применительно к числам. Если в качестве операндов некоторого арифметического
выражения используются только целые числа, то результат тоже будет целое
число. Исключением является операция деления, результатом которой является
вещественное число. При совместном использовании целочисленных и вещественных
переменных, результат будет вещественным. В этом уроке речь пойдет об арифметических операциях,
доступных в данном языке. Если в качестве операндов некоторого арифметического
выражения используются только целые числа, то результат тоже будет целое
число. Исключением является операция деления, результатом которой является
вещественное число. При совместном использовании целочисленных и вещественных
переменных, результат будет вещественным. Целые числа (int) Числа в Python 3 поддерживают набор самых обычных
математических операций:
Пример применения вышеописанных операций над
целыми числами Вещественные числа (float) Вещественные числа поддерживают те же операции, что и
целые. Однако (из-за представления чисел в компьютере) вещественные числа
неточны, и это может привести к ошибкам. Пример применения вышеописанных операций над вещественными
числами
В стандартную поставку Python входит библиотека math, в
которой содержится большое количество часто используемых математических
функций. Для работы с данным модулем его предварительно нужно
импортировать. Рассмотрим наиболее часто используемые функции модуля math
Пример применения вышеописанных функций над числами В программе определены 4 переменные - a, b, c, d, каждая из
которых является либо целым числом, либо вещественным, либо отрицательным. Командой print() выводится значение каждой переменной на
экран при выполнении программы. В переменную z помещается результат выполнения функции
модуля math. Затем командой print() выводится
сообщение в виде используемой функции и её аргумента и результат её
выполнения. Пример программы на Python Результат выполнения программы с применением функций модуля
math Тригонометрические функции модуля math
Пример применения вышеописанных функций над числами В программе определена переменная x, содержащая целое
число. Значение переменной выводится командой print() на
экран. В переменную z помещается результат выполнения
тригонометрической функции модуля math. Затем командой print() выводится сообщение
в виде используемой функции и её аргумента и результат её
выполнения. Пример программы с использованием тригонометрических
функций модуля math Результат выполнения программы с
применением тригонометрических функций модуля math Константы:
Пример Напишите программу, которая бы вычисляла заданное
арифметическое выражение при заданных переменных. Ввод переменных
осуществляется с клавиатуры. Вывести результат с 2-мя знаками после запятой. Вариант 0 x=10; t=1 Решение
Результат Лабораторные
задания Вариант 1 Вычислить. и ;
если x = 2; у = 6; z = 7. Вариант 2. Вычислить и если x = 5; у =
1; z = 4. Вариант 3. Вычислить и если x = 1; у = 12; z = 6. Вариант 4. Вычислить и если x = 11; у = 5; z = 10. Вариант 5. Вычислить и если x = 15; у = 7; z = 3. Вариант 6. Вычислить и если x = 3; у = 4; z = 5. Вариант 7. Вычислить и если x = 5; у = 3; z = 17. Вариант 8. Вычислить и если x = 7; у =
4; z = 8. Вариант 9. Вычислить и если x = 17; у = 16; z = 15. Вариант 10. Вычислить и если x = 6; у = 7; z = 8. Вариант 11. Вычислить и если x = 3; у = 4; z = 5. Вариант 12. Вычислить и если x = 4; у = 5; z = 6. Вариант 13. Вычислить и если x = 5; у =
6; z = 7. Вариант 14. Вычислить и если x = 8; у = 9; z = 10. Вариант 15. Вычислить и ; если x = 9; у =
10; z = 11 Вариант 16
Даны a,b,c,x,y. Вычислить Вариант 17 Даны a,b,c,x,y. Вычислить Вариант 18 Даны a,b,c,x,y. Вычислить Вариант 19 Даны a,b,c,x,y. Вычислить Вариант 20 Даны a,b,c,x,y. Вычислить Вариант 21 Даны a,b,c,x,y. Вычислить Вариант 22 Даны a,b,c,x,y. Вычислить Вариант 23 Даны a,b,c,x,y. Вычислить Вариант 24 Даны a,b,c,x,y. Вычислить Вариант 25 Даны a,b,c,x,y. Вычислить Вариант 26 Даны a,b,c,x,y. Вычислить Вариант 27 Даны a,b,c,x,y. Вычислить Вариант 28 Даны a,b,c,x,y. Вычислить Вариант 29 Даны a,b,c,x,y. Вычислить Вариант 30 Даны a,b,c,x,y. Вычислить Лабораторная работа 3 Структура
ветвление в Python
|
Лабораторная работа 4 Работа с циклами в
Python
Цель работы: познакомиться с циклическими конструкциями
1. Цикл while
в Python while
логическое выражение: команда 1 После ключевого
слова while указывается условное выражение, и пока это выражение возвращает
значение True, будет выполняться блок инструкций, который идет далее. Пример
программы на Python Результат выполнения программы с
использованием циклического оператора while 2.Цикл for в Python: команда 2 ... команда n Функция
range() является универсальной функцией Python для создания списков (list)
содержащих арифметическую прогрессию. Чаще всего она используется в циклах
for. range(старт, стоп, шаг) - так
выглядит стандартный вызов функции range() в Python. По умолчанию старт
равняется нулю, шаг единице. Вариант 0 1. Найти сумму n элементов следующего ряда
чисел: 1 -0.5 0.25 -0.125 ... n. Количество элементов (n) вводится
с клавиатуры. Вывести на экран каждый член ряда и его сумму. Решить
задачу используя циклическую конструкцию for. Решение: В данном
случае ряд чисел состоит из элементов, где каждый следующий меньше
предыдущего в два раза по модулю и имеет обратный знак. Значит, чтобы
получить следующий элемент, надо предыдущий разделить на -2. Какой-либо
переменной надо присвоить значение первого элемента ряда (в данном случае это
1). Далее в цикле добавлять ее значение к переменной, в которой накапливается
сумма, после чего присваивать ей значение следующего элемента ряда, разделив
текущее значение на -2. Цикл должен выполняться n раз. Пример программы с циклом for Результат выполнения программы 2. Дано целое число, не меньшее 2. Выведите его
наименьший натуральный делитель, отличный от 1. Решение: Для начала введём целое число командой
int(input(текст сообщения)). Затем зададим переменной i значение 2. Переменная i
выполняет роль счётчика. Если задать ей значение 1, то условие задачи не
будет выполнено, а результатом всегда будет 1. В цикле while в качестве логического выражения
используется команда n%i сравниваемая с нулём. Таким образом, если остаток от
деления введённого числа на текущее значение i не равно нулю, то счётчик
увеличивается на 1, а если равно нулю цикл заканчивается и командой print()
выводится сообщение и значение i. Пример программы с циклом while Результат выполнения
программы Вариант 1 1. Дано
вещественное число – цена 1 кг конфет. Вывести стоимость 1, 2, … 10 кг
конфет. Решить задачу используя циклическую конструкцию for. 2. Дана
непустая последовательность целых чисел, оканчивающаяся нулем. Найти: а) сумму
всех чисел последовательности; б) количество всех чисел последовательности Решить
задачу используя циклическую конструкцию while. Вариант 2 1. Даны
два числа A и B (A<B). Найти сумму всех целых чисел от А до В включительно. Решить задачу используя циклическую
конструкцию for. 2. Дана
последовательность отрицательных целых чисел, оканчивающаяся положительным
числом. Найти среднее арифметическое всех чисел последовательности (без учета
положительным числа). Решить
задачу используя циклическую конструкцию while. Вариант 3 1. Даны
два числа A и B (A<B). Найти сумму квадратов всех целых чисел от А до В
включительно. Решить задачу используя циклическую конструкцию for. 2. Дана
последовательность из n целых чисел. Первое число в последовательности чётное.
Найти сумму всех идущих подряд в начале последовательности чётных чисел.
Условный оператор не использовать Решить
задачу используя циклическую конструкцию while. Вариант 4 1. Найти
среднее арифметическое всех целых чисел от a до 200 (значения a и b вводятся
с клавиатуры; a≤ 200). Решить задачу используя циклическую конструкцию
for. 2. Дана
последовательность из n вещественных чисел, начинающаяся с положительного
числа. Определить, какое количество положительных чисел записано в начале
последовательности. Условный оператор не использовать. Решить
задачу используя циклическую конструкцию while. Вариант 5 1. Найти
сумму всех целых чисел от a до b (значения a и b вводятся с клавиатуры; b
≥a). Решить задачу используя циклическую конструкцию for. 2.Дано целое
число N (> 0), являющееся некоторой степенью числа 2: N = 2^K. Найти целое
число K — показатель этой степени. Решить
задачу используя циклическую конструкцию while. Вариант 6 1. Найти
сумму квадратов всех целых чисел от a до 50 (значение a вводится с клавиатуры;
0 ≤a≤50). Решить задачу используя циклическую конструкцию for. 2.Дано
целое число N (> 1). Найти наименьшее целое число K, при котором
выполняется неравенство 5^K > N. Решить
задачу используя циклическую конструкцию while. Вариант 7 1. Дана
непустая последовательность целых чисел, оканчивающаяся нулем. Найти: а) сумму
всех чисел последовательности; б)
количество всех чисел последовательности. Решить
задачу используя циклическую конструкцию for. 2.Дано
целое число N (> 1). Найти наибольшее целое число K, при котором
выполняется неравенство 2^K > N. Решить
задачу используя циклическую конструкцию while. Вариант 8 1. Дана
последовательность из n вещественных чисел. Первое число в последовательности
нечетное. Найти сумму всех идущих подряд в начале последовательности нечетных
чисел. Условный оператор не использовать. Решить задачу используя циклическую
конструкцию for. 2.Дано
целое число N (> 0). Используя операции деления нацело и взятия остатка от
деления, найти количество и сумму его цифр. Решить задачу
используя циклическую конструкцию while. Вариант 9 1. Среди
чисел 1, 4, 9, 16, 25, ... найти первое число, большее n. Решить задачу
используя циклическую конструкцию for. 2.Среди
чисел 1, 5 10, 16, 23, ... найти первое число, большее n. Условный оператор
не использовать. Решить
задачу используя циклическую конструкцию while. Вариант 10 1.
Известны оценки по физике каждого из 20 учеников класса. Определить среднюю
оценку. Решить задачу используя циклическую конструкцию for. 2.Дано
число A (> 1). Вывести наибольшее из целых чисел K, для которых сумма 1 +
1/2 + … + 1/K будет меньше A, и саму эту сумму. Решить
задачу используя циклическую конструкцию while. Вариант 11 1.
Известно сопротивление каждого из элементов электрической цепи. Все элементы
соединены последовательно. Определить общее сопротивление цепи. Решить задачу
используя циклическую конструкцию for. 2.Дано
целое число N (> 0). Найти наибольшее целое число K, квадрат которого не
превосходит N: K^2 ≤ N. Функцию извлечения квадратного корня не использовать. Решить
задачу используя циклическую конструкцию while. Вариант 12 1.
Известны оценки по физике каждого ученика двух классов. Определить среднюю
оценку в каждом классе. Количество учащихся в каждом классе одинаковое.
Решить задачу используя циклическую конструкцию for. 2.
Выведите на экран для числа 2 его степени от 0 до 20 Решить
задачу используя циклическую конструкцию while. Вариант 13 1. В
области 12 районов. Известны количество жителей (в тысячах человек) и площадь
(в км2) каждого района. Определить среднюю плотность населения по области в
целом. Решить задачу используя циклическую конструкцию for. 2.Мой
богатый дядюшка подарил мне один доллар в мой первый день рождения. В каждый
день рождения он удваивал свой подарок и прибавлял к нему столько долларов,
сколько лет мне исполнилось. Написать программу, указывающую, к какому дню
рождения подарок превысит 100$. Решить
задачу используя циклическую конструкцию while. Вариант 14 1.
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько
клеток будет через 3, 6, 9, ..., 24 часа, если первоначально была одна амеба.
Решить задачу используя циклическую конструкцию for. 2. Вывести
таблицу значений функции y = -0.5x + x. Значения аргумента (x) задаются
минимумом, максимумом и шагом. Например, если минимум задан как 1, максимум
равен 3, а шаг 0.5. То надо вывести на экран изменение x от 1 до 3 с шагом
0.5 (1, 1.5, 2, 2.5, 3) и значения функции (y) при каждом значении x. Решить
задачу используя циклическую конструкцию while. Вариант 15 1. Начав
тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он
увеличивал пробег на 10% от пробега предыдущего дня. Определить: а) пробег
лыжника за второй, третий, ..., десятый день тренировок; б) какой
суммарный путь он пробежал за первые 7 дней тренировок. Решить
задачу используя циклическую конструкцию for. 2. Найти
сумму и произведение цифр, введенного целого числа. Например, если введено
число 325, то сумма его цифр равна 10 (3+2+5), а произведение 30 (3*2*5). Решить
задачу используя циклическую конструкцию while. Список литературы 1. https://pythonworld.ru/osnovy/cikly-for-i-while-operatory-break-i-continue-volshebnoe-slovo-else.html 2. https://python-scripts.com/loops-for-while 3. https://metanit.com/python/tutorial/2.7.php 4. https://younglinux.info/python/for.php 5. http://labs.org.ru/python-2/ |
Лабораторная работа 5 Работа со строками в
Python
Цель работы: познакомится с методами работы со
строками. Функции и методы работы со строками
Ниже
приведена программа, демонстрирующая использование функций и методов работы
со строками. Пример программы на Python Результат выполнения программы с использованием
функций и методов работы со строками Пример Вариант 0 Проверить,
будет ли строка читаться одинаково справа налево и слева направо (т. е.
является ли она палиндромом). Решение Сначала введём строку
командой: s=input('Введите строку '). Затем определим логическую переменную flag и
присвоим ей значение 1: flag=1. Для начала в введённой строке нужно удалить пробелы.
Для этого воспользуемся циклической конструкцией for, которая выполнится
столько раз, какую имеет длину строка. Длину строки определим функцией
len(s). В теле цикла будем проверять следующее условие:
s[i]!=' '. Данное логическое выражение будет истинно в том случае, если i-ый
элемент строки не будет равен пробелу, тогда выполнится команда
следующая после двоеточия: string+=s[i]. К сроке string, которая была объявлена в начале
программы, будет добавляться посимвольно строка s, но уже без пробелов. Для проверки строки на "палиндром"
воспользуемся циклической конструкцией for. Длина половины строки находится делением нацело
на 2. Если количество символов нечетно, то стоящий в
середине не учитывается, т.к. его сравниваемая пара - он сам. Количество повторов цикла равно длине половины
строки. Длину строки определим функцией len(s), где аргумент введённая нами
строка s. Зная длину строки, можно вычислить количество повторов цикла. Для
этого целочисленно разделим длину строки на 2: len(s)//2. Для задания диапазона для цикла используем функцию range(), в которой аргументом будет являться половина
длины строки: range(len(s//2 )). for i in range(len(s//2 )). Если символ с индексом i не равен
"симметричному" символу с конца строки (который находится
путем индексации с конца) if s[i] != s[-1-i], то переменной flag присваивается значение 0 и
происходит выход из цикла командой break. Далее, при помощи условной конструкции if-else в
зависимости от значения flag либо - 0, либо -1 выводится сообщение, что
строка палиндром, либо нет. Пример
программы на Python Результат выполнения программы Задания для самостоятельной работы (по вариантам) Вариант 1 Дана
строка, содержащая русскоязычный текст. Найти количество слов, начинающихся с
буквы "е". Вариант 2 В строке
заменить все двоеточия (:) знаком процента (%). Подсчитать количество замен. Вариант 3 В строке
удалить символ точку (.) и подсчитать количество удаленных символов. Вариант 4 В строке
заменить букву(а) буквой (о). Подсчитать количество замен. Подсчитать,
сколько символов в строке. Вариант 5 В строке
заменить все заглавные буквы строчными. Вариант 6 В строке
удалить все буквы "а" и подсчитать количество удаленных
символов. Вариант 7 Дана
строка. Преобразовать ее, заменив звездочками все буквы "п",
встречающиеся среди первых n/2 символов. Здесь n - длина строки. Вариант 8 Дана
строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке. Вариант 9 Определить,
сколько раз в тексте встречается заданное слово. Вариант 10 Дана
строка-предложение на английском языке. Преобразовать строку так, чтобы
каждое слово начиналось с заглавной буквы. Вариант 11 Дана
строка. Подсчитать самую длинную последовательность подряд идущих букв
«н». Преобразовать ее, заменив точками все восклицательные знаки. Вариант 12 Дана
строка. Вывести все слова, оканчивающиеся на букву "я". Вариант 13 Дана
строка символов, среди которых есть одна открывающаяся и одна закрывающаяся
скобки. Вывести на экран все символы, расположенные внутри этих скобок. Вариант 14 Дана
строка. Вывести все слова, начинающиеся на букву "а" и слова,
оканчивающиеся на букву "я". Вариант 15 Дана
строка текста. Подсчитать количество букв «т» в строке. Список литературы 1. https://ps.readthedocs.io/ru/latest/strings.html 2. https://pythonworld.ru/tipy-dannyx-v-python/stroki-literaly-strok.html 3. https://pythonworld.ru/tipy-dannyx-v-python/stroki-funkcii-i-metody-strok.html |
Лабораторная работа 6 Работа со списками.
Операции над списками в Python
Цель
работы: Изучение
списков в Python. Списки в Python - упорядоченные
изменяемые коллекции объектов произвольных типов (почти как массив, но типы
могут отличаться). Список
(list) – это структура данных для хранения объектов различных типов. Списки
являются упорядоченными последовательностями, которые состоят из различных
типов данных, заключающихся в квадратные скобки [ ]
и отделяющиеся друг от друга с помощью запятой. Создание
списков на Python. Создать
список можно несколькими способами 1.
Получение списка через присваивание конкретных значений. Так
выглядит в коде Python пустой список: s =
[] # Пустой список Примеры
создания списков со значениями: Списки
можно складывать (конкатенировать) с помощью знака «+»: Результат: 2.
Создание списка при помощи функции Split(). Используя
функцию split в Python можно получить из строки список. stroka
="Привет, страна" lst=stroka.split(",") Результат: 3.
Генераторы списков. В Python
создать список можно также при помощи генераторов. Первый
способ. Сложение
одинаковых списков заменяется умножением: Список из
10 элементов, заполненный единицами l = [1]*10 Второй способ. Пример 1. l = [i for i in range(10)] Пример 2. c = [c * 3 for c in 'list'] print (c) # ['lll', 'iii', 'sss', 'ttt'] Примеры
использования генераторов списка. Пример 1. Заполнить
список квадратами чисел от 0 до 9, используя генератор списка. Решение: l = [i*i for i in range(10)] Заполнить
список числами, где каждое последующее число больше на 2. l = [(i+1)+i for i in range(10)] print(l)
Случайные
числа в списке: 10 чисел,
сгенерированных случайным образом в диапазоне (10,80) l = [randint(10,80) for x in range(10)]
4. Ввод
списка (массива) в языке Python. Для ввода
элементов списка используется цикл for и команда range (): for i in range(N): x[i] = int( input() ) Более
простой вариант ввода списка: x = [ int(input()) for i in range(N) ] Функция
int здесь используется для того, чтобы строка, введенная пользователем,
преобразовывалась в целые числа.
Вывод
целого списка: print (L) Поэлементный
вывод списка: for i in
range(N):
print ( L[i], end = " " ) 2. Методы
списков.
Ниже
приведена программа, демонстрирующая методы работы списков. Пример программы на Python Результат выполнения программы Вариант 0 1.
Из массива X длиной n, среди элементов которого есть
положительные, отрицательные и равные нулю, сформировать новый массив Y, взяв
в него только те элементы из X, которые больше по модулю заданного
числа M. Вывести на экран число M, данный и полученные массивы. Решение: 2. В
массиве целых чисел все отрицательные элементы заменить на
положительные. Вывести исходный массив и полученный. Решение: Вариант 1 1. Дан
одномерный массив, состоящий из N целочисленных элементов. Ввести массив с
клавиатуры. Найти максимальный элемент. Вывести массив на экран в обратном
порядке. 2. В
массиве действительных чисел все нулевые элементы заменить на среднее
арифметическое всех элементов массива. Вариант 2 1. Дан
одномерный массив, состоящий из N целочисленных элементов. Ввести массив с
клавиатуры. Найти минимальный элемент. Вывести индекс минимального элемента
на экран. 2. Дан
массив целых чисел. Переписать все положительные элементы во второй массив, а
остальные - в третий. Вариант 3 1. В одномерном числовом массиве D
длиной n вычислить сумму элементов с нечетными индексами. Вывести на экран
массив D, полученную сумму. Вариант 4 1. Дан массив целых чисел. Найти
максимальный элемент массива и его порядковый номер. Вариант 5 1. Дан одномерный массив из 10
целых чисел. Вывести пары отрицательных чисел, стоящих рядом. Вариант 6 1. Дан одномерный массив из 10
целых чисел. Найти максимальный элемент и сравнить с ним остальные элементы.
Вывести количество меньших максимального и больших максимального элемента. Вариант 7 1. Дан массив целых чисел. Найти
сумму элементов с четными номерами и произведение элементов с нечетными
номерами. Вывести сумму и произведение. Вариант 8 1. Найдите сумму и произведение
элементов списка. Результаты вывести на экран. Вариант 9 1. Дан одномерный массив,
состоящий из N вещественных элементов. Ввести массив с клавиатуры. Найти и
вывести минимальный по модулю элемент. Вывести массив на экран в обратном
порядке. Вариант 10 1.
Определите, есть ли в списке повторяющиеся элементы, если да, то вывести на
экран это значение, иначе сообщение об их отсутствии. Вариант 11 1 Найти наибольший элемент списка,
который делиться на 2 без остатка и вывести его на экран. Вариант 12 1. Найти наименьший нечетный
элемент списка и вывести его на экран. Вариант 13 1. Дан одномерный массив целых
чисел. Проверить, есть ли в нем одинаковые элементы. Вывести эти элементы и их
индексы. Вариант 14 1. Найти
максимальный элемент численного массива и поменять его местами с минимальным. 2.
Программа заполняет одномерный массив из 10 целых чисел числами, считанными с
клавиатуры. Определить среднее арифметическое всех чисел массива. Заменить
элементы массива большие среднего арифметического на 1. Вариант 15 1.
Определите, есть ли в списке повторяющиеся элементы, если да, то вывести на
экран эти значения. Список литературы 1. https://pythonworld.ru/tipy-dannyx-v-python/spiski-list-funkcii-i-metody-spiskov.html 2. https://www.ibm.com/developerworks/ru/library/l-python_part_3/index.html 3. https://devpractice.ru/python-lesson-7-work-with-list/ 4. http://labs.org.ru/python-6/ |
|
||||||
|
||||||
|
Возвращает абсолютное
значение числа. Аргумент может быть целым или числом с плавающей точкой. Если
аргумент является комплексном числом, возвращается его величина.
Возвращает True, если все элементы iterable возвращают
правду (или если итерируемый объект пуст). Эквивалентно к:
def all(iterable):
for
element in
iterable:
if not element:
return False
return True
Возвращает True, если какой-нибудь элемент iterable возвращает
истину. Если итерируемый объект пуст, возвращается False. Эквивалентно к:
def any(iterable):
for element in iterable:
if
element:
return True
return False
Как repr() возвращает строку, содержащую представление
объекта для печати, но избегая не-ASCII символов в строке, возвращаемых repr(), используя \x, \u или \U выходы.
Это создает строку, подобную той, что возвращает repr() в Python 2.
Преобразует
целое число в двоичную строку, имеющую префикс '0b'. Результатом
является допустимое выражение Python. Если x не является
Python-объектом int, он должен определить метод __index__()
(docs.python.org/3/reference/datamodel.html#object.__index__), который
возвращает целое. Несколько примеров:
>>> bin(3)
'0b11'
>>> bin(-10)
'-0b1010'
В зависимости от того,
требуется префикс '0b' или нет, вы можете использовать любой из следующих
способов.
>>> format(14, '#b'), format(14, 'b')
('0b1110', '1110')
>>> f'{14:#b}', f'{14:b}'
('0b1110', '1110')
См. также format() для большей информации.
Возвращает значение
Boolean (логический, или двоичный, тип данных - прим. пер.), т. е. True или False. x преобразуется
с помощью стандартной процедуры
тестирования истины. Если x является ложью
или пропущен (вызов без аргумента - прим. пер.), то возвращается False; в противном случае возвращается True. Класс bool -
это подкласс int (см. Числовые
типы - int, float, complex).
От него нельзя образовывать подклассы дальше. Единственные его экземпляры -
это False и True (см. Булевы
значения).
class bytearray([source[,
encoding[, errors]]])
Возвращает новый
массив байтов. Класс bytearray представляет собой изменяемую последовательность
целых чисел в диапазоне 0 <= x < 256. У нее есть большинство обычных
методов изменяемых последовательностей, описанных в Изменяемые
типы последовательностей, а также большинства
методов, которые имеет тип bytes, см. Операции Bytes
и Bytearray.
Необязательный
параметр source можно использовать для инициализации массива
несколькими различными способами:
Без аргумента
создается массив размером 0.
См. также Типы бинарных
последовательностей - bytes, bytearray, memoryview и Объекты
Bytearray.
class bytes([source[, encoding[, errors]]])
Возвращает новый
объект “bytes”, который является неизменной последовательностью целых чисел в
диапазоне 0 <= x < 256. bytes -
это неизменяемая версия bytearray - она имеет те же неизменяющие методы и такую же
индексацию и взятие срезов.
Соответственно,
аргументы конструктора интерпретируются также как для bytearray().
Объекты bytes также
могут быть созданы с литералов, см. String and Bytes literals
(docs.python.org/3/reference/lexical_analysis.html#strings).
См. также Типы бинарных последовательностей - bytes, bytearray, memoryview, Объекты Bytes и Операции Bytes и Bytearray.
Возвращает True, если аргумент object является
вызываемым, False, если нет. Если
возвращается истина, все еще возможно, что вызов не удастся, но если это ложь,
вызов object никогда не удастся. Обратите внимание, что классы
вызываемы (вызов класс возвращает новый экземпляр); экземпляры вызываемы, если
их класс имеет метод __call__()
(docs.python.org/3/reference/datamodel.html#object.__call__).
Новое
в версии 3.2: Эта функция была сначала удалена
из Python 3.0, а затем занесена обратно в Python 3.2.
Возвращает строку,
представляющую символ, чей код Юникода является целым числом i.
Например, chr(97) возвращает
строку 'a', в то время как chr(8364) вернет строку '€' Эта функция является противоположной для ord().
Допустимый диапазон
для аргумента: от 0 до 1,114,111 (0x10FFFF по основанию 16). Будет возбуждаться
ValueError, если i выходит за эти пределы.
Возвращает метод
класса для function.
Метод класса получает
класс как неявный первый аргумент, также как метод экземпляра получает
экземпляр. Чтобы объявить метод класса, используйте эту идиому:
class C:
@classmethod
def f(cls, arg1, arg2, ...):
...
Форма @classmethod является декоратором
(docs.python.org/3/glossary.html#term-decorator) функции - для дополнительной
информации см. описание определений функций в Function definitions
(docs.python.org/3/reference/compound_stmts.html#function).
Функцию можно вызвать
либо на класс (как C.f()), либо на экземпляр
(как C().f()).
Экземпляр игнорируется за исключением его класса. Если метод класса вызывается
для производного класса, объект производного класса передается как
предполагаемый первый аргумент.
Методы класса
отличаются от статических методов C++ или Java. Если вам необходимо подобное,
см. staticmethod() в этом разделе.
Для получения более
подробной информации о методах класса, обратитесь к документации по стандартной
иерархии типов в The standard type hierarchy
(docs.python.org/3/reference/datamodel.html#types).
compile(source,
filename, mode, flags=0, dont_inherit=False, optimize=-1)
Компиляция source в
код или объект AST. Кодовые объекты могут быть выполнены exec() или eval(). source может быть либо обычной
строкой, либо строкой байтов или объектом AST. Обратитесь к документации модуля
ast (docs.python.org/3/library/ast.html#module-ast) для получения информации о
том, как работать с объектами AST.
Аргумент filename должен
передать файл, из которого читается код; передается некоторое распознаваемое
значение, если не было чтения из файла (обычно используется '<string>').
Аргумент mode определяет,
какой код должен быть скомпилирован; это может быть 'exec', если source состоит из
последовательности операторов,'eval', если состоит из одного выражения, или 'single', если он состоит из одного интерактивного оператора
(в последнем случае операторы выражения, которые расцениваются как что-то
другое, чем None, будут напечатаны).
Необязательные
аргументы flags и dont_inherit управляют
будущими операторами (см. PEP 236 (www.python.org/dev/peps/pep-0236)),
влияющими на компиляцию source. Если их нет (или оба равны нулю)
код компилируется с теми будущими операторами, которые в действительности в
коде, который вызывает compile(). Если аргумент flags задан, а dont_inherit нет
(или равен нулю), то будущие операторы, указанные в аргументе flags используются
в дополнение к тем, которые использовались бы в любом случае. Если dont_inherit является
ненулевым целым, то аргумент flags - будущие операторы в
действительности вокруг вызова компиляции игнорируются.
Будущие операторы
задаются битами, которые могут быть побитово ORed вместе для задания нескольких
операторов. Логическое поле необходимое к указанию переданной функции можно
найти как атрибут compiler_flag экземпляра _Feature в модуле __future__ (docs.python.org/3/library/__future__.html#module-__future__).
Аргумент optimize определяет
уровень оптимизации компилятора; значение по умолчанию -1 выбирает уровень
оптимизации интерпретатора как заданный опцией -O
(docs.python.org/3/using/cmdline.html#cmdoption-O). Явные уровни 0 (нет оптимизация; __debug__ есть true), 1 (утверждения удаляются, __debug__ есть false) или 2 (строки документации удаляются также).
Эта функция возбуждает
SyntaxError (docs.python.org/3/library/exceptions.html#SyntaxError), если
компилируемый код содержит ошибки, и ValueError
(docs.python.org/3/library/exceptions.html#ValueError), если код содержит
несуществующие (null) байты.
Если вы хотите парсить
код Python в его предтавление AST, см. ast.parse()
(docs.python.org/3/library/ast.html#ast.parse).
Примечание. Когда компилируется строка с многострочным кодом
в режимах 'single' или 'eval', ввод должен быть завершен по крайней мере одним
символом новой строки. Это необходимо для облегчения обнаружения неполных и
полных выражений в модуле code (docs.python.org/3/library/code.html#module-code).
Изменено
в версии 3.2: Разрешено использование новой
строки Windows и Mac. Также ввод в режиме 'exec' не должен больше заканчиваться символом новой
строки. Добавлен параметр optimize.
Изменено
в версии 3.5: Ранее возбуждалось TypeError
(docs.python.org/3/library/exceptions.html#TypeError), когда в sourse
встречались несуществующие байты.
Возвращает комплексное
число со значением real + imag*1j или преобразовывает строку или
число в комплексное число. Если первый параметр является строкой, она будет
интерпретирована как комплексное число, и функция должна быть вызвана без
второго параметра. Второй параметр никогда не может быть строкой. Каждый
аргумент может быть любым числовым типом (в том числе комплексным). Если imag опущен,
то по умолчанию равен нулю, и конструктор работает как числовое преобразование
подобно int() и float(). Если оба аргумента опущены, возвращается 0j.
Примечание: При преобразовании из строки, она не должна
содержать пробелы вокруг центрального оператора + или -.
Например, complex('1+2j') правильно, но complex('1 + 2j') вызовет ValueError
(docs.python.org/3/library/exceptions.html#ValueError).
Комплексный тип описан
в Числовые
типы — int, float, complex.
Изменено в версии
3.6: Допускается группировка цифр с символами подчеркивания, как в
литералах кода.
Родственный с setattr(). Аргументы являются
объектом и строкой. Строка должна быть именем одного из атрибутов объекта.
Функция удаляет названный атрибут, если предоставленный объект это позволяет.
Например, delattr(x, 'foobar') эквивалентно del x.foobar.
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
Создает новый словарь.
Объект dict является классом словаря. См. dict и Типы
отображений — dict для получения сведений об этом
классе.
Для других контейнеров
см. встроенные классы list, set и tuple, также как модуль collections
(docs.python.org/3/library/collections.html#module-collections).
Без аргументов
возвращает список имен в текущем локальной области видимости. С аргументом
пытаться вернуть список допустимых атрибутов для указанного объекта.
Если у объекта есть
метод с именем __dir__()
(docs.python.org/3/reference/datamodel.html#object.__dir__), этот метод будет
вызван и должен вернуть список атрибутов. Это позволяет объектам, которые
реализуют обычные функции __getattr__()
(docs.python.org/3/reference/datamodel.html#object.__getattr__) или
__getattribute__()
(docs.python.org/3/reference/datamodel.html#object.__getattribute__), настроить
способ, каким dir() будет представлять их атрибуты.
Если объект не
предоставляет __dir__(), функция пытается сделать все возможное, чтобы собрать
информацию из атрибута объекта __dict__, если он определен, и от его типа
объекта. Результирующий список не обязательно является полным и может быть
неточным по-сравнению с тем, когда у объекта есть __getattr__().
По умолчанию механизм
dir() ведет себя по-разному с различными типами объектов, так как он пытается
произвести наиболее актуальную, а не полную информацию:
Результирующий список
отсортирован в алфавитном порядке. Например:
>>> import struct
>>> dir() # показывает имена в пространстве
имен модуля
['__builtins__', '__name__', 'struct']
>>> dir(struct) # показывает имена в модуле struct
['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
'__initializing__', '__loader__', '__name__', '__package__',
'_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
'unpack', 'unpack_from']
>>> class Shape:
... def
__dir__(self):
... return
['area', 'perimeter', 'location']
>>> s = Shape()
>>> dir(s)
['area', 'location', 'perimeter']
Примечание. Поскольку dir() предоставляется в основном как
удобство для использования в интерактивном режиме, он пытается предоставить
интересующий набор имен в большей степени, чем пытается поставить строго или
последовательно определенный набор имен, и его подробное поведение может
измениться через релизы. Например, атрибутов метакласса нет в списке
результатов, когда аргумент является классом.
Принимает два (не
комплексных) числа в качестве аргументов и возвращает пару чисел, составляющих
их частное и остаток, когда используется целочисленного деление. Если операнды
разных типов, применяются правила для бинарных арифметических операторов. Для
целых чисел результат будет таким же, как (a // b, a % b). Для вещественных чисел результат есть (q, a % b), где q обычно math.floor(a / b), но может быть 1 меньше, чем то. В любом случае q * b + a % b очень близко к a, если a % b не равна нулю, то имеет тот же знак, что и b, 0 <= abs(a % b) < abs(b).
Возвращает
перечисляемый объект. iterable должен быть
последовательностью, iterator (docs.python.org/3/glossary.html#term-iterator)
или другим объектом с поддержкой итераций. Метод __next__() итератора, возвращаемого enumerate(), возвращает
кортеж, содержащий счетчик (start которого по умолчанию 0) и
значения, полученные из перебора по iterable.
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'),
(2,
'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'),
(3,
'Fall'), (4, 'Winter')]
Эквивалентно:
def enumerate(sequence, start=0):
n = start
for
elem in
sequence:
yield
n, elem
n += 1
eval(expression, globals=None,
locals=None)
Аргументы - это строка
и необязательные globals и locals. При наличии, globals должен
быть словарем. Если предоставлен, locals может быть любым
объектом отображения (mapping).
Аргумент expression анализируется
и оценивается как выражение Python (с технической точки зрения, список
условий), использующее globals и locals словари
как глобальные и локальные пространства имен. Если словарь globals присутствует
и не хватает '__builtins__', текущие глобальные копируются в globals перед
тем, как анализируется expression. Это означает, что expression обычно
имеет полный доступ к стандартному модулю builtins
(docs.python.org/3/library/builtins.html#module-builtins) и распространяются
ограничения окружения. Если словарь locals опущен, по умолчанию
используется словарь globals. Если оба словаря опущены, выражение
выполняется в среде, где вызывается eval(). Возвращаемое значение является
результатом вычисляемого выражения. Синтаксические ошибки сообщаются как
исключения. Пример:
>>> x = 1
>>> eval('x+1')
2
Эта функция также
может быть использована для выполнения произвольных кодов-объектов (например,
тех, которые созданы compile()). В этом случае передается объект кода вместо строки.
Если объект-код был скомпилирован с 'exec' как аргумент mode, возвращаемое
значение eval() будет None.
Советы: динамическое
исполнение операторов поддерживается функцией exec(). Функции globals() и
locals() возвращают текущие глобальные и локальные словари соответственно,
которые могут быть полезны к распространению для использования eval() или
exec().
См. ast.literal_eval()
(docs.python.org/3/library/ast.html#ast.literal_eval) для функции, которая
может безопасно оценить строки с выражениями, содержащими только литералы.
exec(object[,
globals[, locals]])
Эта функция
поддерживает динамическое выполнение Python-кода. object должен
быть строкой или кодовым объектом. Если это строка, она обрабатывается как
набор операторов Python, которые затем выполняются (если только не происходит
ошибка синтаксиса). [1] Если
это объект-код, он просто выполняется. Во всех случаях код, который
выполняется, как предполагается будет действителен в качестве входных файлов
(см раздел "File input" в справочном руководстве). Знайте, что
операторы return и yield не могут быть использованы за пределами определений
функций даже в контексте кода переданного функции exec(). Возвращаемое
значение None.
Во всех случаях если
дополнительные части опущены, код выполняется в текущей области видимости.
Если предоставляется только globals, это должен быть словарь,
который будет использоваться как для глобальных так и
локальных переменных. Если даны globals и locals,
они используются для глобальных и локальных переменных соответственно. Если
задан, locals может быть любым объектом-отображением (mapping
object). Помните, что на уровне модуля, глобальные и локальные - один и тот же
словарь. Если exec получает два отдельных объекта как globals и locals,
код будет выполняться, как будто они были встроены в определение класса.
Если словарь globals не
содержит значение для ключа __builtins__, ссылка на словарь из встроенного модуля builtins
(docs.python.org/3/library/builtins.html#module-builtins) вставляется под этим
ключом. Таким образом вы можете контролировать то, что встроенные функции
доступны для исполняемого кода, вставив свой собственный
словарь __builtins__ в globals,
прежде чем передать его exec().
Примечание: Встроенные функцие globals() и locals() возвращают
текущие глобальный и локальный словари соответственно, которые могут быть
полезны для раздачи использования в качестве второго и третьего аргумента
exec().
Примечание: По умолчанию locals действует,
как описано для функции locals() ниже: изменения в словаре по умолчанию locals не
должно быть предпринято. Передается явный словарь locals, если вам
нужно увидеть эффекты кода на locals после возврата из функции
exec().
Строит итератор из тех
элементов iterable, для которых function возвращает
true. iterable может быть либо последовательностью,
контейнером, который поддерживает итерацию, либо итератором. Если function есть None, предполагается идентичная функция, то есть все
элементы iterable, которые являются false, удаляются.
Обратите внимание,
что filter(function, iterable) есть эквивалент выражению-генератору (item for item in
iterable if function(item)), если функция
не None и (item for item in
iterable if item), если функция является None.
См.
itertools.filterfalse()
(docs.python.org/3/library/itertools.html#itertools.filterfalse) для
дополнительной функции, которая возвращает элементы iterable, для
которых function возвращает false.
Возвращает число с
плавающей точкой, созданное из числа или строки x.
Если аргумент является
строкой, он должен содержать десятичное число с необязательным предшествующим
знаком, и необязательным вставленным в эту строку пробелом. Необязательный знак
может быть '+' или '-'; знак '+' не
оказывает никакого эффекта на получаемое значение. Аргумент может также быть
строкой, представляющей NaN (not-a-number), или положительной или отрицательной
бесконечностью. Более точно, ввод должен соответствовать следующей грамматике
после того, как начальные и конечные пробельные символы будут удалены:
sign
::= "+" | "-"
infinity ::= "Infinity" | "inf"
nan
::= "nan"
numeric_value ::=
floatnumber | infinity | nan
numeric_string
::= [sign] numeric_value
Здесь floatnumber является формой литерала с плавающей точкой в Python, описанный в Floating point literals
(docs.python.org/3/reference/lexical_analysis.html#floating). Регистр не имеет значения, так, например, “inf”,
“Inf”, “INFINITY” и “iNfINity” - все приемлемые варианты написания для
положительной бесконечности.
В ином случае, если
аргумент является целым числом или числом с плавающей точкой, возвращается
число с плавающей точкой с тем же значением (в пределах точности числа с
плавающей точкой в Python). Если аргумент находится вне диапазона float в
Python, будет возбуждено OverflowError
(docs.python.org/3/library/exceptions.html#OverflowError).
Для общего объекта
Python x float(x) представляется в x.__float__().
Если аргумент не
задан, то возвращается 0.0.
Примеры:
>>> float('+1.23')
1.23
>>> float(' -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf
Тип float описан в Числовые типы — int, float, complex.
Изменено
в версии 3.6: позволена группировка цифр с
помощью нижнего подчеркивания как в кодовых литералах.
Преобразует value к
"отформатированному" представлению, как контролируется format_spec.
Интерпретация format_spec будет зависеть от типа
аргумента value, однако есть стандартный синтаксис форматирования,
который используется большинством встроенных типов: Format Specification
Mini-Language (docs.python.org/3/library/string.html#formatspec).
По умолчанию
format_spec - это пустая строка, которая обычно дает тот же эффект, что и вызов
str(value) (docs.python.org/3/library/stdtypes.html#str).
Вызов format(value,
format_spec) переводится в type(value).__format__(format_spec), который обходит словарь экземпляра при поиске
значения метода __format__()
(docs.python.org/3/reference/datamodel.html#object.__format__). Возникает
исключение TypeError (docs.python.org/3/library/exceptions.html#TypeError),
если поиск метода достигает object и format_spec не пустой, или
если либо format_spec, либо возвращаемое значение не являются
строками.
Изменено
в версии 3.4: object().__format__(format_spec) возбуждает TypeError, если format_spec не
пустая строка.
Возвращает новый
объект frozenset, опционально с элементами, взятыми из iterable. frozenset является встроенным классом. Смотрите frozenset
и Типы множеств
— set, frozenset для обзора документации по этому
классу.
Для других контейнеров
смотрите встроенные классы set, list, tuple и dict, а также модуль collections
(docs.python.org/3/library/collections.html#module-collections).
getattr(object,
name[, default])
Возвращает значение
атрибута object с указанным именем. name должен
быть строкой. Если строка является именем одного из атрибутов объекта,
результатом является значение этого атрибута. Например, getattr(x, 'foobar') эквивалентна x.foobar. Если названный атрибут не существует, то
возвращается то, что задано по умолчанию, если предусмотрено, в противном
случае возбуждается AttributeError
(docs.python.org/3/library/exceptions.html#AttributeError).
Возвращает словарь,
представляющий текущую глобальную таблицу обозначений. Это всегда словарь
текущего модуля (внутри функции или метода, это модуль, где она определена, не
модуль, из которого она вызывается).
Аргументами являются
объект и строка. Результат истина, если строка является именем одного из
атрибутов объекта, ложь, если нет. (Это реализуется путем вызова getattr(object, name) и обзора, возбуждает ли он AttributeError или
нет.)
Возвращает
хэш-значение объекта (если он есть). Хэш-значения являются целыми числами. Они
используются для быстрого сравнения ключей словаря во время просмотра словаря.
Числовые значения, которые сравнивают, равны, если имеют одинаковое значение
хеш (даже если они имеют разные типы, как это имеет место для 1 и 1,0).
Примечание. Для объекта с пользовательскими методами __hash__(), обратите внимание, что hash() обрезает возвращаемое
значение на основе битовой ширины хост-машины. Смотрите __hash__()
(docs.python.org/3/reference/datamodel.html#object.__hash__) для получения подробной
информации.
Вызывает встроенную
справочную систему. (Эта функция предназначена для интерактивного
использования.) Если аргумент не задан, интерактивная справочная система
запускает консольную справку. Если аргумент является строкой, то строка
рассматривается как имя модуля, функции, класса, метода, ключевое слово или
тема документации, и справочной страница выводится в консоли. Если аргумент
является любой другой вид объекта, генерируется страница помощи по объекту.
Эта функция добавлена
к встроенному пространству имен модуля site
(docs.python.org/3/library/site.html#module-site).
Изменено
в версии 3.4: Изменения в pydoc
(docs.python.org/3/library/pydoc.html#module-pydoc) и inspect
(docs.python.org/3/library/inspect.html#module-inspect) означают, что
сообщаемые подписи для вызываемых объектов в настоящее время более полный и
последовательный.
Преобразует целое
число в строчное шестнадцатеричное представление с префиксом “0x”, например:
>>> hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
Если x не является
объектом int Python, у него должен быть определен метод __index__(),
возвращающий целое.
Смотрите также int()
для преобразования шестнадцатеричной строки в целое, используя основание 16.
Примечание. Для получения строки шестнадцатеричного представления
вещественного числа используйте метод float.hex().
Возвращает
"индивидуальность" объекта. Это целое число, которое гарантированно
будет уникальным и постоянным для этого объекта во время его жизни. Два объекта
с неперекрывающимся временем жизни могут иметь одинаковые значения id().
Детали
реализации CPython: Это адрес объекта в памяти.
Если аргумент prompt присутствует,
он пишется в стандартный вывод без последующего символа новой строки. Затем
функция считывает строку из ввода, преобразует ее в строковый тип данных
(удаляя символ конца строки) и возвращает результат. Когда считывается EOF,
возбуждается EOFError (docs.python.org/3/library/exceptions.html#EOFError).
Пример:
>>> s = input('--> ')
--> Monty Python's Flying Circus
>>> s
"Monty Python's Flying Circus"
Если был загружен
модуль readline (docs.python.org/3/library/readline.html#module-readline), то
input() будет использовать его для предоставления сложного редактирования
строки и возможностей истории.
class int(x=0)
class int(x, base=10)
Возвращает
целочисленный объект, созданный из числа или строки x, или
возвращает 0, если аргументы не заданы. Если x является
числом, возвращает x.__int__()
(docs.python.org/3/reference/datamodel.html#object.__int__). У вещественных
чисел удаляется дробная часть.
Если x не
число или если задано base, то x должен быть
строкой, байтами, или экземпляром bytearray, представляющим литерал целого числа
(docs.python.org/3/reference/lexical_analysis.html#integers) по основанию base.
Литералу может предшествовать + или - (без пробела между ними) и окруженный пробелами.
Литерал по основанию n состоит из цифр от 0 до n-1, включая от a до z (или
от A до Z), имеющих значения от 10 до 35. По умолчанию base равно
10. Допустимые значения 0 и 2-36. Основания -2, -8, и -16 могут иметь необязательные
префиксы 0b/0B, 0o/0O или 0x/0X, как с целочисленными литералами в коде. Основание 0
означает точно интерпретировать как кодовый литерал, так что фактическое
основание 2, 8, 10 или 16, и так что int('010', 0) не является правильным, в то время как int('010') верно, а также int('010', 8).
Целочисленный тип
описан в Числовые типы
— int, float, complex.
Изменено в версии 3.4:
Если base не является экземпляром int и объект base имеет
метод base.__index__
(docs.python.org/3/reference/datamodel.html#object.__index__), то этот метод
вызывается для получения целого для base. В предыдущих версиях
использовали base.__int__
(docs.python.org/3/reference/datamodel.html#object.__int__) вместо
base.__index__.
Изменения в версии
3.6: Как в кодовых литералах позволено группировать цифры с помощью символов
нижнего подчеркивания.
Возвращает правду,
если аргумент object является экземпляром аргумента classinfo,
или (прямым, косвенным или виртуальным
(docs.python.org/3/glossary.html#term-abstract-base-class)) подклассом от него.
Если object не является объектом данного типа, функция всегда
возвращает ложь. Если classinfo не является классом (тип
объекта), это может быть кортеж объектов типа, или может рекурсивно содержать
другие такие кортежи (другие типы последовательностей не принимаются).
Если classinfo не является типом или кортежем типов и подобных
кортежей, возбуждается исключение TypeError (docs.python.org/3/library/exceptions.html#TypeError).
Возвращает правду,
если class является подклассом (прямым, косвенным или
виртуальным) от classinfo. Класс считается подклассом самого
себя. classinfo может быть кортеж из объектов классов, и в
этом случае каждая запись в classinfo будут проверена. В любом
другом случае, возбуждается исключение TypeError.
Возвращает объект iterator
(docs.python.org/3/glossary.html#term-iterator). Первый
аргумент интерпретируется по-разному в зависимости от наличия второго
аргумента. Без второго аргумента, object должен быть
объектом-коллекцией, которая поддерживает протокол итераций (метод __iter__()),
или он должен поддерживать протокол последовательности (метод __getitem__() с целыми аргументами, начиная с 0). Если он не
поддерживает любой из этих протоколов, возбуждается TypeError. Если второй
аргумент, sentinel, передается, то object должен
быть вызываемым объектом. В этом случае созданный итератор будем вызывать object без
аргументов для каждого вызова его метода __next__(); если возвращенное значение
равно sentinel, будет возбуждено StopIteration, иначе будет
возвращено значение.
Смотри также Типы итераторов.
Один из вариантов
применения второй формы iter() является чтение строк файла, пока не будет
достигнута определенная линия. Следующий пример считывает до тех пор, пока
метод readline() не возвращает пустую строку:
with open('mydata.txt') as fp:
for
line in
iter(fp.readline, ''):
process_line(line)
Возвращает длину
(число элементов) объекта. Аргумент может быть последовательностью (например,
строка, байты, кортеж, список или диапазон) или коллекцией (например, словарь,
множество или frozen множество).
Вместо того, чтобы
быть функцией, list на самом деле является изменяемым типом
последовательности, как описано в Lists и Типы
последовательностей — list, tuple, range.
Обновляет и возвращает
словарь, представляющий текущую локальную таблицу имен. Свободные переменные
возвращаются locals(), когда она вызывается в блоках функций, но не в блоках
классов.
Примечание: Содержимое этого словаря не должны быть изменено;
изменения не могут повлиять на значения локальных и свободных переменных,
используемых интерпретатором.
Возвращает итератор,
который применяет function к каждому элементу из iterable,
принося результаты. Если передаются дополнительные аргументы iterable, function должна
принять все множество аргументов и применится к элементам из всех параллельно.
С несколькими итерируемыми итератор останавливается, когда самая короткая
итерация исчерпана. Для случаев, когда входы функции уже расположены в
аргументе кортежей см itertools.starmap()
(docs.python.org/3/library/itertools.html#itertools.starmap).
max(iterable, *[,
key, default])
max(arg1, arg2, *args[, key])
Возвращает самый
большой элемент в iterable или самый большой из двух или более
аргументов.
Если предоставляется один
позиционный аргумент, он должен быть iterable
(docs.python.org/3/glossary.html#term-iterable). Возвращается наибольший
элемент из итерации. Если передаются два или более позиционных аргументов,
возвращается самый большой из них.
Есть два необязательных
keyword-only (именованных - прим. пер.) аргумента. Аргумент key определяет
одно-аргументную упорядочивающую функцию такую же, как используемую для list.sort(). Аргумент default определяет
возвращаемый объект, если предоставленная итерация пуста. Если итерация пуста
и default не предоставлен, возбуждается ValueError
(docs.python.org/3/library/exceptions.html#ValueError).
Если множество
элементов являются максимальными, функция возвращает первый, который
попадается. Это совпадает с другими сохраняющими сортировку инструментами
как sorted(iterable, key=keyfunc, reverse=True)[0] и heapq.nlargest(1, iterable,
key=keyfunc).
Новое
в версии 3.4: default keyword-only
аргумент.
Возвращает объект
“memory view”, созданный из данного аргумента. Для детальной информации см. Memory Views.
min(iterable, *[,
key, default])
min(arg1, arg2, *args[, key])
Возвращает наименьший
элемент в iterable или наименьший из двух или более аргументов.
Если предоставлен один
позиционный аргумент, он должен быть iterable
(docs.python.org/3/glossary.html#term-iterable). Если предоставляются два и
более позиционных аргумента, возвращается наименьший позиционный аргумент.
Существует два
необязательных keyword-only аргумента. Аргумент key определяет
одно-аргументную порядковую функцию такую же, как используемую для list.sort(). Аргумент default определяет
возвращаемый объект, если предоставленная итерация пуста. Если итерация пуста и
default не предоставлен, возбуждается ValueError
(docs.python.org/3/library/exceptions.html#ValueError).
Если не один элемент
является минимальными, функция возвращает первый, который попадается. Это
совпадает с другими сохраняющими сортировку инструментами как sorted(iterable,
key=keyfunc)[0] и heapq.nsmallest(1,
iterable, key=keyfunc).
Новое
в версии 3.4: default keyword-only
аргумент.
Извлекает следующий
элемент из iterator, путем вызова его методом __next__(). Если дан default, то он возвращается,
если итератор исчерпан, иначе возбуждается StopIteration
(docs.python.org/3/library/exceptions.html#StopIteration).
Возвращает новый
безликий объект. object является основой для всех классов. У него есть методы,
которые общие для всех экземпляров классов Python. Эта функция не принимает
никакие аргументы.
Примечание: у object нет __dict__, таким образом вы не можете назначать произвольные
атрибуты экземплярам класса object.
Обращает целое
десятичное число в восьмеричное число в виде строки. Результатом является
валидное выражение Python. Если x не является объектом int, он должен
определить метод __index__()
(docs.python.org/3/reference/datamodel.html#object.__index__), который
возвращает целое десятичное число.
open(file, mode='r',
buffering=-1, encoding=None, errors=None, newline=None, closefd=True,
opener=None)
Открывает file и возвращает соответствующий file object
(docs.python.org/3/glossary.html#term-file-object). Если файл не может быть открыт, то возбуждается OSError
(docs.python.org/3/library/exceptions.html#OSError).
file - это path-like object
(docs.python.org/3/glossary.html#term-path-like-object), задающий путь-имя (абсолютное или относительное к текущей рабочей директории) файла, который открыт, или числовой файловый дескриптор файла, который был обернут. (Если дан файловый дескриптор,
он закрывается, когда возвращаемый объект I/O закрыт, до тех
пор пока closefd не установлен в False.
mode является необязательной строкой, которая
определяет режим, в котором файл открывается. По умолчанию это 'r', что обозначает открытие для чтения в текстовом
режиме. Другое распространенное значение - это 'w' для записи (стирает содержимое файла, если он
уже существует), 'x' для
исключительного создания и 'a' для
добавления (что на некоторых Unix-системах означает, что все записи добавляются
в конец файла, несмотря на текущую позицию seek). В текстовом режиме если
параметр encoding не указан, то использование кодирования
зависит от платформы: вызывается locale.getpreferredencoding(False), чтобы получить текущую локальную кодировку. (Для
чтения и написания необработанные байты используют бинарный режим или оставляют
кодировку неопределенной.) Доступными режимами являются:
Символ |
Значение |
'r' |
открывает для чтения (по умолчанию) |
'w' |
открывает для записи, сначала усекая
файл |
'x' |
открывает исключительно для создания,
терпит неудачу, если файл уже существует |
'a' |
открывает для записи, если файл уже
существует, то для добавления в его конец |
'b' |
бинарный режим |
't' |
текстовый режим (по умолчанию) |
'+' |
открывает дисковый файл для обновления
(чтения или записи) |
'U' |
режим universal newlines
(docs.python.org/3/glossary.html#term-universal-newlines) (устаревший) |
Режимом по умолчанию
является 'r' (открывает для
чтения текст, синоним 'rt').
Для доступа к бинарному чтению-записи режим 'w+b' открывает и усекает файл до 0 байтов. 'r+b' открывает файл без усечения.
Как уже упоминалось в
Overview (docs.python.org/3/library/io.html#io-overview), Python делает
различия между бинарным и текстовым вводом-выводом. Файлы, открытые в бинарном
режиме (включающие 'b' в
аргументе mode) возвращают содержимое как объекты bytes
(docs.python.org/3/library/stdtypes.html#bytes) без какого-либо декодирования.
В текстовом режиме (по умолчанию или когда 't' включено в аргумент mode) содержимое
файла возвращается как str (docs.python.org/3/library/stdtypes.html#str), байты
сначала декодируются, используя платформенно-зависимую кодировку или используя
указанную кодировку, если она задана.
Замечание: Python не зависит от идеи текстовых файлов,
лежащей в основе операционной системы; вся обработка выполняется Python'ом
самостоятельно и является поэтому платформенно-независимой.
buffering есть необязательное целое число, которое
используется для установки политики буферизации. Передайте 0 для выключения
буферизации (позволено только в бинарном режиме), 1 для выбора строки
буферизации и целое число > 1 для указания размера
в байтах порции буфера фиксированного размера. Когда нет заданного
аргумента buffering, по умолчанию политика буферизации работает
следующим образом:
encoding есть название кодирования, используемого для
декодирования или кодирования файла. Его следует использовать только в
текстовом режиме. По умолчанию кодирование платформенно-зависимо (что бы ни вернул
locale.getpreferredencoding()
(docs.python.org/3/library/locale.html#locale.getpreferredencoding)), но любой
text encoding (docs.python.org/3/glossary.html#term-text-encoding),
поддерживаемый Python, может быть использован. Смотрите модуль codecs (docs.python.org/3/library/codecs.html#module-codecs)
для списка поддерживаемых кодировок.
errors - это необязательная строка, которая определяет,
как ошибки кодирования и декодирования должны быть обработаны, она не может
быть использовано в бинарном режиме. Разнообразие обработчиков стандартных
ошибок доступно (перечислены в Error Handlers
(docs.python.org/3/library/codecs.html#error-handlers)), хотя любое имя
обрабатываемой ошибки, которая была зарегистрирована с codecs.register_error() (docs.python.org/3/library/codecs.html#codecs.register_error)
также действительна. Стандартные имена включают:
newline контролирует, как работает режим universal
newlines (docs.python.org/3/glossary.html#term-universal-newlines) (это
применяется только к текстовому режиму). Это может быть None, '', '\n', '\r' и '\r\n'. Это работает следующим образом:
Если closefd есть False и файловый дескриптор предпочтительней, чем
заданное имя файла, лежащий в основе файловый дескриптор будет оставаться
открытым, когда файл закрывается. Если имя файла дано, closefd должен
быть True (по умолчанию),
иначе будет возбуждена ошибка.
Пользовательский
открыватель можно использовать, передавая вызываемый как opener.
Лежащий в основе файловый дескриптор для файлового объекта есть затем
полученный с вызывающим opener (file, flags). opener должен
возвращать открытый файловый дескриптор (передающий os.open
(docs.python.org/3/library/os.html#os.open) как результаты opener в
функциональности похожей на передающийся None).
Вновь созданный файл
является non-inheritable (docs.python.org/3/library/os.html#fd-inheritance).
Следующий пример
использует параметр dir_fd (docs.python.org/3/library/os.html#dir-fd) функции
os.open() (docs.python.org/3/library/os.html#os.open) для открытия файлового
отношения к заданной директории.
>>> import
os
>>> dir_fd = os.open('somedir',
os.O_RDONLY)
>>> def opener(path, flags):
... return
os.open(path, flags, dir_fd=dir_fd)
...
>>> with open('spamspam.txt', 'w', opener=opener) as f:
... print('This will be written to somedir/spamspam.txt', file=f)
...
>>> os.close(dir_fd) # файловый дескриптор не
просачивается
Тип file object
(docs.python.org/3/glossary.html#term-file-object), возвращаемый функцией
open(), зависит от режима. Когда open() используется для открытия файла в
текстовом режиме ('w', 'r', 'wt', 'rt', т. д.), возвращается подкласс io.TextIOBase (а
именно io.TextIOWrapper). Когда используется для открытия файл в бинарном
режиме с буферизацией, возвращаемый класс есть подкласс io.BufferedIOBase.
Точный класс изменяется: в режиме бинарного чтения возвращает
io.BufferedReader; в режимах бинарной записи и добавления возвращает
io.BufferedWriter, и в режиме чтения/записи возвращает io.BufferedRandom. Когда
буферизация отключена, данные текут, подкласс io.RawIOBase, io.FileIO
возвращается.
Смотри также модули
обработчиков файла, такие как fileinput, io (где open()
объявлена), os, os.path, tempfile и shutil.
Изменено
в версии 3.3:
Изменено
в версии 3.4:
Устаревший,
начиная с версии 3.4, будет удален в версии 4.0: Режим 'U'.
Изменено
в версии 3.5:
Изменено
в версии 3.6:
Дается строка,
представляющая один символ Unicode, возвращается целое число, представляющее
код Unicode того символа. Например, ord('a') возвращает целое число 97, а ord('€') (знак евро) возвращает 8364. Эта функция обратна chr().
Возвращает x в
степени y; если z присутствует, возвращает x в
степени y, по модулю z (вычисление более
эффективно, чем pow(x, y) % z).
Двухаргументная форма pow(x, y) - это эквивалент использования оператора
степени: x**y.
Аргументы должны иметь
числовые типы. Со смешанными типами операндов применяются правила принуждение
для бинарных арифметических операторов. Для операндов int результат имеет такой
же тип, как операнды (после принуждения), если второй аргумент не является
отрицательным; в этом случае все аргументы конвертируются в float, и результат
float предоставляется. Например, 10**2 возвращает 100, но 10**-2 возвращает
0.01. Если второй аргумент отрицательный, третий аргумент должен быть опущен.
Если z представлен, x и y должны
быть целочисленными типами, и y должен быть неотрицательным.
print(*objects, sep='
', end='\n', file=sys.stdout, flush=False)
Выводит объекты в
текстовый поток file, разделяются sep и
завершаются end. sep, end и file если
представлены, должны быть даны как аргументы ключевого слова.
Все аргументы, которые
не являются ключевыми словами, конвертируются в строки, также как это делает
str(), и записываются в поток, разделяясь set и
оканчиваясь end. Оба set и end должны
быть строками; они также могут быть None,
который обозначает использовать значения по умолчанию. Если нет переданных
объектов, print() просто выведет end.
Аргумент file должен
быть объектом с методом write(string); если он не представлен или является None, sys.stdout будет использоваться. Так как печатные
аргументы преобразуются в текстовые строки, print() не
может быть использован файловыми объектами в бинарном режиме. Вместо этого для
них используется file.write(...).
Будет ли вывод
буферизирован - это обычно определяется file, но если
аргуемент flush есть истина, поток принудительно размывается.
Изменено
в версии 3.3: Добавлен аргумент-ключевое
слово flush.
class property(fget=None,
fset=None, fdel=None, doc=None)
Возвращает свойство
атрибута.
fget - это функция для получения значения
атрибута. fset - функция для установления значения
атрибута. fdel - это функция для удаления значения атрибута.
И doc создает строку документации для атрибута.
Обычно используется
для определения управляемого атрибута х:
class C:
def
__init__(self):
self._x = None
def
getx(self):
return
self._x
def
setx(self, value):
self._x = value
def
delx(self):
del
self._x
x = property(getx,
setx, delx, "I'm the 'x'
property.")
Если c экземпляр C, c.x будет вызывать getter, c.x = value будет вызывать setter и del c.x - deleter.
Если задано, doc будет
строкой документации свойства атрибута. Иначе свойство скопирует строку
документации fget (если она существует). Это делает возможным
легко создать свойства только для чтения, используя property() как decorator (docs.python.org/3/glossary.html#term-decorator).
class Parrot:
def
__init__(self):
self._voltage = 100000
@property
def
voltage(self):
"""Get
the current voltage."""
return self._voltage
Декоратор @property превращает метод voltage() в "getter" для атрибута только для
чтения с таким же именем, и это устанавливает строку документации для voltage в
“Get the current voltage.”
Свойство объекта имеет
методы getter, setter и deleter, используемые как декораторы, которые создают
копию свойства с соответствующей функцией метода доступа, которая устанавливает
декорируемую функцию. Это лучше объясняется на примере:
class C:
def __init__(self):
self._x = None
@property
def
x(self):
"""I'm
the 'x' property."""
return
self._x
@x.setter
def
x(self, value):
self._x = value
@x.deleter
def
x(self):
del
self._x
Этот код точный
эквивалент первого примера. Будет верно дать дополнительным функциям то же имя
как оригинальное свойство (x в
этом случае).
Возвращенное свойство
объекта также имеет атрибуты fget, fset и fdel, соответствующие аргументам
конструктора.
Изменено
в версии 3.5: Строки документации свойств
объекта теперь записываемые.
range(stop)
range(start, stop[, step])
range
(docs.python.org/3/library/stdtypes.html#range) скорее не функция, а на самом
деле тип неизменяемой последовательности, как документировано в Диапазоны и Типы
последовательностей — list, tuple, range.
Возвращает строку,
содержащую печатную версию объекта. Для многих типов эта функция делает попытку
вернуть строку, которая бы дала объект с таким же значением, когда передается eval() (docs.python.org/3/library/functions.html#eval),
иначе представление - это строка, заключенная в угловые скобки, которые
содержат имя типа объекта вместе с дополнительной информацией, часто включающей
имя и адрес объекта. Класс может контролировать, что эта функция возвращает для
ее экземпляров, путем определения метода __repr__()
(docs.python.org/3/reference/datamodel.html#object.__repr__).
Возвращает
перевернутый iterator (docs.python.org/3/glossary.html#term-iterator). seq должен
быть объектом, у которого есть метод __reversed__(), или поддерживать протокол последовательности
(методы __len__() и __getitem__() с целочисленным аргументом, начинающимся с
0).
Возвращает number,
округленное до ndigits цифр после десятичной точки. Если ndigits опущен
или None, то возвращает
ближайшее целое к его вводу.
Для встроенных типов,
поддерживающих round(), значения округляются к ближайшему кратному 10 в степени
минус ndigits; если кратные одинаково близки, округление
производится в сторону выравнивающего выбора (так, например, оба round(0.5) и round(-0.5) есть 0,
а round(1.5) есть 2). Любое целое значение допустимо для ndigits (положительное,
ноль или отрицательное). Возвращаемое значение есть целое, если вызывается с
одним аргументом, иначе такого же типа как number.
Для общего Python-объекта number, round(number,
ndigits) делегирует к number.__round__(ndigits).
Примечание: Поведение round() для
вещественных чисел может быть неожиданным: например, round(2.675, 2) дает 2.67 вместо
ожидаемого 2.68. Это не баг: это
результат факта, что самые большие десятичные дроби не могут быть представлены
точно как вещественные числа. Смотрите Арифметика
чисел с плавающей точкой: проблемы и ограничения для дополнительной информации.
Возвращает новый
объект set, опционально с элементами, взятыми из itarable. set - это встроенный класс. Смотрите set и Типы множеств
— set, frozenset для информации об этом классе.
Для других контейнеров
смотрите встроенные классы frozenset, list, tuple и dict, а также модуль
collections (docs.python.org/3/library/collections.html#module-collections).
Это эквивалент getattr(). Аргументы
являются объектом, строкой и произвольным значением. Строка может иметь
название существующего атрибута или нового атрибута. Функция присваивает
значение атрибуту, при условии, что объект это позволяет. Например, setattr(x, 'foobar', 123) эквивалентно x.foobar =
123.
class slice(stop)
class slice(start, stop[, step])
Возвращает объект slice (docs.python.org/3/glossary.html#term-slice), представленный множеством индексов, определенных range(start, stop, step). Аргументы start и step по
умолчанию None.
У объектов среза (slice) есть только для чтения данные атрибутов start, stop и
step, которые просто возвращают значения аргументов (или их по-умолчанию). Они
не имеют никакой другой явной функциональности; однако они используются
Numerical Python и другими сторонними расширениями. Объекты срезов также генерируются,
когда используется расширенный синтаксис индексирования. Например: a[start:stop:step] или a[start:stop, i]. Смотрите itertools.islice()
(docs.python.org/3/library/itertools.html#itertools.islice) для альтернативной
версии, которая возвращает итератор.
sorted(iterable, *,
key=None, reverse=False)
Возвращает новый
отсортированный список из элементов в iterable.
Имеет два
необязательных аргумента, которые должны быть быть определены как аргументы c
ключевым словом.
key определяет функцию одного аргумента, которая
используется для извлечения ключа сравнения из каждого элемента списка: key=str.lower. По умолчанию значение None (непосредственное сравнение элементов).
reverse есть булево значение. Если установлено в True, значит элементы списка сортируются, как если каждое
сравнение было от обратного.
Используйте
functools.cmp_to_key()
(docs.python.org/3/library/functools.html#functools.cmp_to_key) для
преобразования функции cmp старого стиля в функцию key.
Встроенная функция
sorted() гарантировано будет стабильной. Сортировка стабильна, если на
гарантирует не изменение относительного порядка элементов, которые считаются
равными - это полезно для сортировки в несколько проходов (например, сортировка
по отделам, затем по заработной плате).
Примеры сортировки и
краткий учебник по сортировке смотри в Sorting HowTo
(docs.python.org/3/howto/sorting.html#sortinghowto).
Возвращает статический
метод для function.
Статический метод не
получает неявный первый аргумент. Чтобы объявить статический метод, используйте
эту идиому:
class C:
@staticmethod
def f(arg1, arg2, ...): ...
Форма @staticmethod - это функция decorator (docs.python.org/3/glossary.html#term-decorator)
- смотри описание определений функций в Function definitions (docs.python.org/3/reference/compound_stmts.html#function) для подробностей.
Она может быть вызвана
либо на класс (как C.f()), либо на экземпляр
(как C().f()).
Экземпляр игнорируется за исключением для его класса.
Статические методы в
Python похожи на те, что в Java или C++. Также смотрите classmethod() как вариант, который является полезным для
создания альтернативных конструкторов класса.
Для получения более
подробной информации о статических методах, обращайтесь к документации по
иерархии стандартных типов в The standard type hierarchy
(docs.python.org/3/reference/datamodel.html#types).
class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')
Возвращает str
версию object. Смотри str() для деталей.
str -
это встроенный строковый class (docs.python.org/3/glossary.html#term-class).
Для получения общей информации о строках смотрите Тип текстовой
последовательности — str.
Суммирует от start и
элементы iterable слева направо и возвращает сумму. По
умолчанию start равен 0. Элементы iterable обычно
числа, и значению start не позволено быть строкой.
В некоторых случаях
есть хорошая альтернатива для sum(). Предпочтительный, быстрый способ
объединить последовательность строк - это вызов ''.join(sequence). Чтобы добавить значения с плавающей точкой с
расширенной точностью, смотри math.fsum()
(docs.python.org/3/library/math.html#math.fsum). Для объединения ряда итераций
рассмотрите использование itertools.chain()
(docs.python.org/3/library/itertools.html#itertools.chain).
super([type[,
object-or-type]])
Возвращает объект
прокси, который делегирует метод, вызывающий родительский или сестринский класс
для type. Это полезно для доступа к унаследованным методам, которые
были переопределены в классе. Порядок поиска такой же как при
использовании getattr() за исключением того, что сам type пропускается.
Атрибут __mro__ type
перечисляет разрешения метода порядка поиска, используя оба: getattr() и
super(). Атрибут является динамическим и может измениться, когда обновляется
иерархия наследования.
Если второй аргумент
опущен, объект супер возвращается несвязанным. Если второй аргумент является
объектом, isinstance(obj, type) должен
быть правдой. Если второй аргумент является типом, issubclass(type2, type) должен быть правдой (это полезно для
класс-методов).
Есть два типичных
варианта использования для super. В иерархии классов с одиночным
наследованием super можно использовать для обращения к
родительским классам, не называя их явно, что делает код более сопровождаемым.
Такое использование близко тому, которое используется для super в
других языках программирования.
Второй вариант
использования - поддержка совместного множественного наследования в динамичной
среде выполнения. Этот вариант использования уникален для Python и отсутствует
в статически компилируемых языках или языках, которые поддерживают только
одиночное наследование. Это дает возможность реализовывать "ромбические
диаграммы", где несколько базовых классов реализуют один и тот же метод.
Хорошая разработка диктует, что этот метод имеет одну и ту же сигнатуру вызова
в каждом случае (потому что порядок вызовов определяется во время выполнения,
потому что тот порядок адаптируется к изменениям в иерархии классов, и потому
что тот порядок может включать сестринские классы, которые неизвестны до
времени выполнения).
Для обоих случаев
использования, вызов типичного суперкласса выглядит так:
class C(B):
def
method(self, arg):
super().method(arg) # Делает тоже самое как:
# super(C, self).method(arg)
Заметьте, что super()
реализуется как часть процесса связывания для явного точечного атрибута поиска
как super().__getitem__(name). Это делается так путем реализации его собственного
метода __getattribut__() для поиска классов в предсказуемом порядке, который
поддерживает совместное множественное наследование. Соответственно, super() не определен для неявных поисков с использованием
выражений или операторов, таких как super()[name].
Также заметьте, что
помимо формы нулевого аргумента, super() не ограничивается для использования
внутри методов. Двух-аргументная форма определяет аргументы точно и делает
соответствующие ссылки. Форма нулевого аргумента работает только внутри
определения класса, как компилятор заполняет необходимые детали для правильного
извлечения определяемого класса, также как доступность текущего экземпляра для
обычных методов.
Для практических
предложений, как разрабатывать совместные классы, использующие super(), смотри
guide to using super()
(rhettinger.wordpress.com/2011/05/26/super-considered-super/)
Скорее чем быть
функцией, tuple в действительности тип неизменяемой последовательности, как
описано в Кортежи и Типы
последовательностей — list, tuple, range.
class type(object)
class type(name, bases, dict)
С одним аргументом
возвращает тип object. Возвращаемое значение является типом объекта
и как правило тем же объектом как возвращаемый от object.__class__.
Для проверки типа
объекта рекомендуется встроенная функция isinstance(), т. к. они принимает во внимание подклассы.
С тремя аргументами
возвращает новый объект типа. Это по-сути динамическая форма оператора class
(docs.python.org/3/reference/compound_stmts.html#class). Строка name является
именем класса и становится атрибутом __name__; кортеж bases перечисляет
базовые классы и становится атрибутом __bases__; словарь dict является
пространством имен, содержащим определения для тела класса, и становится
атрибутом __dict__. Например, следующие два выражения создают объекты
идентичного типа:
>>> class X:
... a = 1
...
>>> X = type('X', (object,),
dict(a=1))
Смотри также Объекты типов.
Изменено
в версии 3.6: Подклассы type, которые не
переопределяют type.__new__,
могут больше не использовать одноаргументную форму, чтобы получить тип объекта
Возвращает
атрибут __dict__ для модуля, класса, экземпляра или любого
другого объекта с атрибутом __dict__.
Такие объекты как
модули и экземпляры имеют обновляемый атрибут __dict__; однако другие объекты
могут иметь ограничения на запись для их атрибута __dict__ (например, классы
используют types.MappingProxyType
(docs.python.org/3/library/types.html#types.MappingProxyType) для
предотвращения обновлений словаря).
Без аргумента vars()
действует как locals(). Заметьте, словарь locals полезен только для чтения, т.
к. обновления словаря locals игнорируются.
Создает итератор,
который агрегирует элементы от каждого из iterables.
Возвращает итератор
кортежей, где i-й кортеж содержит i-й элемент каждого из аргументов
последовательностей или iterables. Итератор останавливается, когда самая
короткая итерация исчерпывается. Если в качестве аргумента только одна
итерация, то возвращает итератор одноэлементных кортежей. Без аргументов
возвращает пустой итератор. Эквивалентно следующему:
def zip(*iterables):
# zip('ABCD', 'xy') --> Ax
By
sentinel =
object()
iterators =
[iter(it) for it in iterables]
while
iterators:
result = []
for
it in
iterators:
elem =
next(it, sentinel)
if
elem is
sentinel:
return
result.append(elem)
yield
tuple(result)
Порядок оценки слева
на право для iterables гарантируется. Это делает возможной идиому для
кластеризации серий данных в группы n-длины с помощью zip(*[iter(s)]*n).
zip() следует использовать только с входящими неравной
длины, если вам не важны концы, неучтенные значения из более длинных iterables.
Если эти значения важны, используйте вместо этого itertools.zip_longest()
(docs.python.org/3/library/itertools.html#itertools.zip_longest).
zip() в соединении с оператором * может быть использован для распаковки списка:
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> list(zipped)
[(1, 4), (2, 5), (3, 6)]
>>> x2, y2 = zip(*zip(x, y))
>>> x == list(x2) and y == list(y2)
True
__import__(name, globals=None, locals=None, fromlist=(), level=0)
Замечание: Это продвинутая функция, которая не нужна в повседневном программировании на Python, в отличие от
importlib.import_module()
(docs.python.org/3/library/importlib.html#importlib.import_module).
Эта функция вызывается оператором import
(docs.python.org/3/reference/simple_stmts.html#import). Это может быть заменено (путем импорта модуля
builtings (docs.python.org/3/library/builtins.html#module-builtins) и
назначения builtins.__import__) для изменения семантики оператора import, но делать
так настоятельно не рекомендуется, поскольку это, как правило, проще при
использовании импортируемых hooks (см. PEP 302 (www.python.org/dev/peps/pep-0302))
для достижения тех же целей, и это не вызывает проблем с кодом, который
предполагает реализацию импорта по умолчанию в использовании. Прямое
использование __import__() также не приветствуется в пользу importlib.import_module().
Функция импортирует
модуль name, потенциально используя заданные globals и locals для
определения, как интерпретировать имя в контексте пакета. fromlist задает
имена объектов или подмодулей, которые должны быть импортированы из модуля,
заданного как name. Стандартная реализация не использует ее
аргумент locals вообще, и использует ее globals только для определения пакета
контекста оператора import.
level определяет использовать ли абсолютный или
относительный импорт. 0 (по
умолчанию) обозначает выполнение только абсолютных импортов. Положительное
значение для level указывает количество родительских каталогов
для поиска по отношению к директории модуля вызываемого __import__() (для
подробностей см. PEP 328 (python.org/dev/peps/pep-0328)).
Когда переменная name является
видом package.module,
обычно возвращается верхнеуровневый пакет (имя до первой точки), не модуль с
именем name. Однако, когда задан не пустой аргумент fromlist,
возвращается модуль названный как name.
Например,
выражение import spam дает
результат в байткоде, напоминающем следующий код:
spam = __import__('spam', globals(), locals(), [], 0)
Выражение import spam.ham дает результат этого вызова:
spam = __import__('spam.ham', globals(), locals(), [], 0)
Обратите внимание, как
здесь __import__() возвращает модуль верхнего уровня, потому что это объект,
который связан с именем оператора import.
С другой стороны,
выражение от spam.ham import eggs, sausage as saus дает подобный результат:
_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
eggs = _temp.eggs
saus = _temp.sausage
Здесь от __import__()
возвращается модуль spam.ham.
Из этого объекта имена в импорте извлекаются и присваиваются их соответствующим
именам.
Если вы просто хотите
импортировать модуль (возможно в пакете) по имени, используйте
importlib.import_module()
(docs.python.org/3/library/importlib.html#importlib.import_module).
Изменено
в версии 3.3: Отрицательные значения для level больше
не поддерживаются (они изменяются на значение по умолчанию 0).
Примечания
[1] Обратите
внимание, что парсер принимает только конец Unix-стиля конвенции строки. Если
вы читаете код из файла, убедитесь, что используете режим преобразования новой
строки для преобразования Windows, или Mac-стиля новой строки.
Global |
if |
is |
|
lambda |
not |
or |
raise |
return |
try |
with |
While |
yield |
|
Ключевым словом and обозначается операция «логическое И». Ее используют для объединения двух булевых (то есть возвращающих True
или False) выражений. Получившееся составное выражение даст True,
только если оба исходных выражения возвращают True. Пример:
if age > 10 and age < 20:
print('Осторожно, подросток!!!!')
Сообщение будет напечатано лишь в том случае, если значение переменной age больше 10 и меньше 20.
And — и
Age — возраст
Print —
напечатать
С помощью ключевого слова as можно дать импортированному модулю
другое имя. Допустим, у нас есть модуль с очень длинным названием:
i_am_a_python_module_that_is_not_very_useful
Вводить такое имя при каждом обращении к модулю будет неудобно:
import
i_am_a_python_module_that_is_not_very_useful
i_am_a_python_module_that_is_not_very_useful.do_something()
Я сделал что-то бесполезное.
i_am_a_python_module_that_is_not_very_useful.do_something_else()
Я сделал еще что-то бесполезное!
При импортировании модулю лучше дать новое короткое имя
(псевдоним):
import
i_am_a_python_module_that_is_not_very_useful as notuseful
notuseful.do_something()
Я сделал что-то бесполезное.
notuseful.do_something_else()
Я сделал еще что-то бесполезное!
Ключевое слово assert позволяет убедиться, что некое выражение дает True. Это один из способов обнаружить ошибки и неполадки. Он применяется при создании более сложных программ, поэтому в коде примеров
в этой книге assert не используется. Вот простая конструкция assert:
>>> mynumber = 10
>>> assert mynumber < 5
Traceback (most recent call last):
File
"<pyshell#1>", line 1, in <module>
assert a < 5
AssertionError
В этом примере мы хотим убедиться, что значение переменной mynumber меньше 5. Поскольку в данном случае это не так, Python останавливает программу и выводит ошибку AssertionError.
As — как
I am a Python
module
that is not
very
useful —
я модуль Python,
который
не очень полезен
Do something —
сделать что-то
Do something
else — сделать
что-то другое
Assert — утверждать
My number — мое
число
Not useful —
не полезный
Assertion
Error — ошибка
утверждения
Приложение: ключевые слова Python 285
Ключевое слово break служит для досрочного выхода из цикла.
Например, для цикла for:
age = 10
for
x in range(1, 100):
print('отсчет
%s' % x)
if x == age:
print('закончили считать')
break
Поскольку в переменной age хранится число 10, эта программа напечатает вот что:
отсчет 1
отсчет 2
отсчет 3
отсчет 4
отсчет 5
отсчет 6
отсчет 7
отсчет 8
отсчет 9
отсчет 10
закончили считать
Как только значение переменной x достигнет 10, программа выведет
сообщение «Закончили считать» и выйдет из цикла.
Ключевое слово class служит для определения типов сущностей
(классов), таких как «средство передвижения», «животное», «человек».
У каждого класса может быть специальная функция __init__, предназначенная для подготовки новых объектов к работе. Например, если объектам класса Car нужно свойство color, его можно добавить в функции
__init__, которая вызывается при создании объекта:
class
Car:
def
__init__(self, color):
self.color = color
Break — остановить
For — для
Class — класс
Init —
от initiate —
запустить,
начать
Car — машина
Color — цвет
car1 = Car('red')
car2 = Car('blue')
print(car1.color)
red
print(car2.color)
blue
Ключевое слово continue позволяет «перескочить» к следующему повтору цикла, так что следующая после continue часть тела цикла будет
пропущена. В отличие от break происходит не выход из цикла, а досрочное завершение текущего повтора с переходом к следующему. Например,
если у нас есть список строк и мы хотим напечатать все элементы, которые начинаются не с буквы «б», можно написать такой код:
>>> my_items = ['яблоко', 'трубкозуб', 'банан', 'барсук',
'клементин',
'верблюд']
>>> for item in my_items:
if item.startswith('б'):
continue
print(item)
яблоко
трубкозуб
клементин
верблюд
В строке создаем список строк, в строке задаем цикл для перебора элементов списка. В строке выполняется проверка, начинается
ли текущий элемент с буквы «б». Если это так, в строке с помощью
continue переходим к следующему повтору цикла (и следующему элементу списка). Если нет, печатаем текущий элемент в строке .
Используйте ключевое слово def, чтобы дать определение функции.
Например, так можно определить функцию, преобразующую годы
в минуты:
>>> def minutes(years):
return
years * 365 * 24 * 60
>>> minutes(10)
5256000
Continue — продолжить
My items — мои
предметы
Starts with —
начинается с
Red — красный
Blue — синий
Def — от defi ne —
определить
Minutes —
минуты
Years — годы
С помощью ключевого слова del можно удалить элемент из списка или
словаря. Предположим, вы от руки составили список подарков, которые
хотите получить на день рождения, затем вычеркнули из списка одну
строку и добавили новую:
радиоуправляемый автомобиль
новый велосипед
компьютерная игра
змея-робот
В Python изначальный список будет выглядеть так:
what_i_want = ['радиоуправляемый автомобиль', 'новый велосипед',
'компьютерная игра']
Чтобы удалить из списка компьютерную игру, используем команду
del с индексом соответствующего элемента. Затем можно добавить новый элемент с помощью функции append:
del
what_i_want[2]
what_i_want.append('змея-робот')
И вывести измененный список на экран:
print(what_i_want)
['радиоуправляемый автомобиль', 'новый велосипед', 'змея-робот']
Ключевое слово elif используется как часть конструкции if (см. описание ключевого слова if).
Ключевое слово else используется как часть конструкции if (см. описание ключевого слова if).
Del — от delete —
удалить
Append —добавить
What I want — что
я хочу
Else — еще
Ключевое слово except служит для обнаружения неполадок в коде. Как
правило, его используют в сложных программах, поэтому в нашей книге
мы его не рассматриваем.
Ключевое слово finally нужно для выполнения некоего обязательного
кода при возникновении ошибки (как правило, чтобы освободить ресурсы, затребованные программой перед тем, как возникла ошибка). В этой
книге ключевое слово fi nally не рассматривается, поскольку относится
к продвинутым приемам программирования.
Ключевое слово for используется для создания цикла, повторяющего
блок кода определенное число раз.
Например:
for
x in range(0, 5):
print('x
= %s' % x)
Этот цикл повторит блок кода (команду print) пять раз, после чего
вы увидите на экране:
x = 0
x = 1
x = 2
x = 3
x = 4
Ключевое слово from позволяет импортировать только ту часть модуля,
которая необходима. Например, в модуле turtle (впервые упоминается
в главе 4) есть класс Pen для создания холста, по которому перемещается
черепашка. Можно импортировать весь модуль turtle, затем использовать класс Pen:
import
turtle
t = turtle.Pen()
Except — здесь
от exception —
исключение
Finally —
под конец
For — для
From — из
Turtle — черепаха
Pen — ручка
А можно импортировать только класс Pen и затем использовать его
без явного обращения к модулю turtle:
from
turtle import Pen
t = Pen()
Один из плюсов данного подхода в том, что, заглянув в начало программы, вы сразу увидите, какие функции и классы в ней задействованы (это особенно актуально для программ, импортирующих множество
модулей). Однако вы не сможете использовать те части модулей, которые не были импортированы. Например, в модуле time есть функции
localtime и gmtime. Если вы импортируете только localtime, а потом
попытаетесь воспользоваться gmtime, возникнет ошибка:
>>> from time import localtime
>>> print(localtime())
(2007, 1, 30, 20, 53, 42, 1, 30, 0)
>>> print(gmtime())
Traceback (most recent call last):
File "<stdin>",
line 1, in <module>
NameError: name 'gmtime' is not defined
Сообщение об ошибке — «name 'gmtime' is not defi ned» — означает, что Python ничего не знает о функции gmtime. И это неудивительно,
поскольку вы ее не импортировали.
Если в каком-то модуле содержится набор нужных вам функций, но вы
не хотите при каждом обращении к ним указывать имя модуля (например, time.localtime или time.gmtime), вы можете импортировать
все содержимое модуля с помощью
знака звездочки (*). Вот так:
>>> from time import *
>>> print(localtime())
(2007, 1, 30, 20, 57, 7, 1, 30, 0)
>>> print(gmtime())
(2007, 1, 30, 13, 57, 9, 1, 30, 0)
Импортируется все содержимое модуля time, и можно использовать
входящие в него функции, указывая только их имена.
Концепция области видимости рассматривается в главе 7. Определенная
вне функции переменная, как правило, доступна (видима) в коде этой
Time — время
Local time — местное время
GM time —
от Greenwich
Mean — время
по Гринвичу
Global — глобальный
функции, но определенная внутри функции переменная снаружи обычно не видна. Ключевое слово global позволяет сделать исключение
из этого правила: переменная, объявленная как глобальная (global),
видима во всей программе. Например:
>>> def test():
global a
a = 1
b = 2
Если вызвать функцию test, затем дать команды print(a)
и print(b), первая команда сработает, а вторая нет (произойдет ошибка):
>>> test()
>>> print(a)
1
>>> print(b)
Traceback (most recent call last):
File "<stdin>",
line 1, in <module>
NameError: name 'b' is not defined
Переменная a была объявлена в функции test как глобальная, поэтому видима даже вне этой функции. Однако b видима только в коде
функции, и чтобы обращаться к ней так же, как к a, ее тоже придется
сделать глобальной.
Ключевое слово if нужно для выполнения кода в соответствии с заданным условием. Совместно с if также используются ключевые слова else
и elif (сокращение от else if). Например:
if toy_price > 1000:
print('Эта игрушка чересчур дорогая')
elif toy_price > 100:
print('Эта дорогая игрушка')
else:
print('Я могу купить эту игрушку')
Если, согласно условию в строке , хранящаяся в переменной toy_
price цена игрушки превышает 1000, в строке будет напечатано сообщение о ее чрезмерной дороговизне. В противном случае будет выполнена проверка в строке : если цена игрушки больше 100, в строке
будет напечатано сообщение, что игрушка дорогая. И наконец, если
If — если
Toy price — цена
игрушки
ни одно из предыдущих условий не выполняется, сработает ветка else
в строке , в результате чего в строке будет напечатано сообщение
«Я могу купить эту игрушку».
Ключевое слово import используется для загрузки (импортирования)
модуля в программу. Например, следующая команда загружает модуль
sys, после чего им можно пользоваться:
import sys
Ключевое слово in используется в логических выражениях для проверки, входит ли некое значение в набор элементов. Например, есть ли среди
элементов списка число 1:
>>> if 1 in [1,2,3,4]:
>>> print('число есть в списке')
число есть в списке
А так можно проверить, находится ли строка «штаны» в списке предметов одежды:
>>> clothing_list = ['шорты', 'трусики', 'боксеры', 'кальсоны',
'панталоны']
>>> if 'штаны'
in clothing_list:
print('штаны есть в списке')
else:
print('штанов в списке нет')
штанов в списке нет
Ключевое слово is по смыслу похоже на оператор «равно» (==), который
используется для проверки равенства двух значений (например, выражение 10 == 10 даст True, а 10 == 11 даст False). Однако между is и ==
есть различия. Если сравнение значений через == дает True, сравнение
тех же значений через is в некоторых случаях может дать False (даже
если значения одинаковы). Это относится к продвинутым средствам программирования, поэтому в книге мы всегда используем оператор ==.
Import — импортировать
Sys —
от system —
система
In — в
Clothing list — список вещей
Is — есть
Ключевое слово lambda используется для создания безымянных (или
«встроенных») функций. Мы не рассматриваем безымянные функции
в этой книге.
Если утверждение истинно, ключевое слово not сделает его ложным.
Например, если создать переменную x и задать ей значение True, а затем
напечатать значение x, поставив перед ним not, выйдет вот что:
>>> x = True
>>> print(not x)
False
Ключевое слово not кажется бесполезным до тех пор, пока вы не начнете использовать not вместе с if. Например, проверить, что строка
не находится в списке, можно так:
>>> clothing_list = ['шорты', 'трусики', 'боксеры', 'кальсоны',
'панталоны']
>>> if 'штаны'
not in clothing_list:
print('Как вы живете без штанов?')
Как вы живете без штанов?
Ключевым словом or обозначается операция «логическое ИЛИ». Ее используют для объединения двух булевых (то есть возвращающих True
или False) выражений. Составное выражение даст True, если хотя бы
одно из исходных выражений дает True. Например:
if dino == 'Тираннозавр' or dino == 'Аллозавр':
print('Хищники')
elif dino == 'Анкилозавр' or dino == 'Апатозавр':
print('Травоядные')
Если переменная dino содержит строку «Тираннозавр» или «Аллозавр», программа напечатает: «Хищники». Если же dino содержит строку «Анкилозавр» или «Апатозавр», программа напечатает:
«Травоядные».
Lambda —
лямбда, в прогр.
анонимная
функция
Not — не
Or — или
Dino —
от dinosaur —
динозавр
Приложение: ключевые слова Python 293
pass
Иногда программу удобнее писать и тестировать небольшими частями.
Но есть проблема: нельзя создать конструкцию if без блока с кодом, который должен выполняться, когда условие if дает True. Точно так же
не получится создать цикл for без тела цикла. Например, этот код работает нормально:
>>> age = 15
>>> if age > 10:
print('старше
10')
старше 10
Однако если убрать тело if, Python выдаст ошибку:
>>> age = 15
>>> if age > 10:
File "<stdin>", line 2
^
IndentationError: expected an indented block
Такое сообщение об ошибке возникает, если после какой-либо конструкции должен стоять блок кода, но его там нет (кстати, IDLE не позволит ввести код этого примера). В подобных случаях вместо отсутствующего кода можно ввести команду pass, которая не выполняет действий.
Допустим, мы хотим создать цикл for с конструкцией if внутри
него, но пока не решили, что будет происходить в теле if (печать сообщения, выход из цикла по break или еще что-то). Можно воспользоваться
pass, и код запустится, несмотря на то что он не завершен.
Вот конструкция if с ключевым словом pass в качестве блока кода:
>>> age = 15
>>> if age > 10:
pass
Еще пример использования pass:
>>> for x in range(0, 7):
>>> print('x = %s' % x)
Pass —
пропустить
>>> if x == 5:
pass
x = 0
x = 1
x = 2
x = 3
x = 4
x = 5
x = 6
Python при каждом повторе цикла проверяет, содержит ли переменная x число 5, но если это так, не выполняет действий, а просто печатает
числа в диапазоне от 0 до 7.
Можно заменить pass работающим кодом, например командой
break:
>>> for x in range(1, 7):
print('x
= %s' % x)
if x ==
5:
break
x = 1
x = 2
x = 3
x = 4
x = 5
Но чаще всего ключевое слово pass используют для определения
функции без написания кода, чтобы добавить его позже.
С помощью ключевого слова raise можно вызвать ошибку в программе.
Как ни странно, в продвинутом программировании это часто бывает полезным. В этой книге команда raise не рассматривается.
Ключевое слово return используется для возвращения значения
из функции. Например, можно создать функцию, которая вычисляет количество секунд, прожитых вами до последнего дня рождения:
def
age_in_seconds(age_in_years):
return
age_in_years * 365 * 24 * 60 * 60
Raise — поднять
Return — вернуть
Age in seconds —
возраст
в секундах
Age in years —
возраст в годах
Приложение: ключевые слова Python 295
Эта функция возвращает значение, которое можно присвоить переменной или вывести на экран:
>>> seconds = age_in_seconds(9)
>>> print(seconds)
283824000
>>> print(age_in_seconds())
378432000
Ключевое слово try открывает блок кода, который заканчивается ключевыми словами except и finally. Блоки try/except/finally используются для обработки ошибок (например, чтобы показывать пользователю понятное сообщение, а не ошибку Python). В этой книге ключевое
слово try не рассматривается.
while
Цикл while напоминает for, однако если for перебирает значения
из заданного диапазона, то while повторяется до тех пор, пока условие
дает True. Будьте осторожны: если условие цикла while всегда будет выполняться, программа не выйдет из цикла (это называется бесконечным
циклом), пока вы ее не остановите, нажав Ctrl-C. Например:
>>> x = 1
>>> while x == 1:
print('Привет')
Следующий код напечатает «Привет» девять раз (на каждом повторе
увеличивая x на 1, пока x не станет равен 10):
>>> x = 1
>>> while x < 10:
print('Привет')
x = x + 1
Ключевое слово with используется для создания блоков кода с обработкой ошибок наподобие блоков try/finally. В этой книге команда with
не рассматривается.
Try —
попробовать
While — пока
With — с
Ключевое слово yield по смыслу напоминает return, но используется
со специальным классом объектов — генераторами. Генераторы создают
значения «на лету» (то есть по запросу), и функция range работает как
генератор. В этой книге команда yield не рассматривается.
Yield — здесь
«создавать»
Словарь терминов
Алгоритм - это последовательность действий, приводящих к требуемому
результату.
Алгоритмизация - процесс составления алгоритмов решения задачи.
Дискретность - процесс преобразования данных, т.е. на
каждом шаге алгоритма выполняется очередная одна операция.
Ввод данных - это передача информации от внешнего носителя в оперативную память
для обработки.
Результативность – свойство алгоритм, заключающееся в даче некоторого результата.
Формализация – математическая постановка задачи.
Итерация - циклическая управляющая структура, которая содержит композицию и
ветвление. Она предназначена для организации повторяющихся процессов обработки
последовательности значений данных.
Композиция (следование) - это линейная управляющая конструкция, не
содержащая альтернативу и итерацию. Она предназначена для описания
единственного процесса обработки информации.
Ветвление - управляющая структура, организующая выполнение лишь одного из двух
указанных действий в зависимости от справедливости некоторого условия.
Условие - вопрос, имеющий два варианта ответа: да или нет.
Цикл – многократно повторяемые участки вычислительного процесса.
Массив - упорядоченная структура, предназначенная для хранения однотипных
данных.
Индекс - порядковый номер элемента.
Размерность - максимально возможное количество элементов в массиве. В один момент
времени можно обратиться только к одному элементу массива. Для этого
указывается имя массива и в скобках индекс элемента.
Рекурсия – это способ организации процесса вычисления, когда алгоритм
обращается сам к себе.
Комментарий - это пояснительный текст, который можно записать в любом месте
программы, где разрешен пробел. Текст комментария может содержать любые
комбинации латинских и русских букв, цифр и других символов языка и должен быть
ограничен несколькими символами.
Алгоритм дихотомии – метод деления отрезка пополам.
Адрес элемента – порядковый номер начального байта размещения этого элемента в
памяти.
Тип - это множество значений, которые могут принимать объекты программы, и
совокупность операций, допустимых над этими значениями.
Глобальные переменные – переменные, объявленные вне процедур и
функций.
Оператор присваивания - это основной оператор любого языка программирования,
позволяющий поместить определенное значение в необходимую переменную.
Множество – упорядоченная совокупность данных одного типа, записанных без
повторений и отсортированных по возрастанию.
Строка - это последовательность символов кодовой таблицы ПЭВМ.
Процедурой – именованная последовательность инструкций, реализующая некоторое
действие.
Сортировка – процесс расположения элементов массива в порядке убывания
(возрастания) из значений.
а) основная литература:
1. Сузи, Р. А. Язык программирования Python / Р. А. Сузи. — М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. — 350 c. — ISBN 5-9556-0058-2. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/52211.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. Пользователей
2. Буйначев, С. К. Основы программирования на языке Python : учебное пособие / С. К. Буйначев, Н. Ю. Боклаг ; под редакцией Ю. В. Песин. — Екатеринбург : Уральский федеральный университет, ЭБС АСВ, 2014. — 92 c. — ISBN 978-5-7996-1198-9. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/66183.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. Пользователей
3. Васильев, А. Н. Python на примерах : практический курс по программированию / А. Н. Васильев. — 2-е изд. — СПб. : Наука и Техника, 2017. — 432 c. — ISBN 978-5-94387-741-4. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/73043.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. Пользователей
4. Шелудько, В. М. Основы программирования на языке высокого уровня Python : учебное пособие / В. М. Шелудько. — Ростов-на-Дону, Таганрог : Издательство Южного федерального университета, 2017. — 146 c. — ISBN 978-5-9275-2649-9. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/87461.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. Пользователей
5. Шелудько, В. М. Язык программирования высокого уровня Python. Функции, структуры данных, дополнительные модули : учебное пособие / В. М. Шелудько. — Ростов-на-Дону, Таганрог : Издательство Южного федерального университета, 2017. — 107 c. — ISBN 978-5-9275-2648-2. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/87530.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. пользователей
б) дополнительная литература:
1. Кольцов, Д. М. Python. Создаем программы и игры / Д. М. Кольцов. — СПб. : Наука и Техника, 2017. — 400 c. — ISBN 978-5-94387-746-9. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/73044.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. пользователей
2. Томашевский, П. Р. Привет, Python! Моя первая книга по программированию / П. Р. Томашевский. — СПб. : Наука и Техника, 2018. — 256 c. — ISBN 978-5-94387-748-3. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/73047.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. Пользователей
3. Маккинли, Уэс Python и анализ данных / Уэс Маккинли ; перевод А. Слинкина. — 2-е изд. — Саратов : Профобразование, 2019. — 482 c. — ISBN 978-5-4488-0046-7. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/88752.html (дата обращения: 11.11.2019). — Режим доступа: для авторизир. пользователей
Перечень ресурсов
информационно-телекоммуникационной сети «Интернет», необходимых для освоения
дисциплины.
Примеры
описания разных видов наименований учебной литературы:
1)
eLIBRARY.RU [Электронный ресурс]: электронная библиотека /
Науч. электрон. б-ка. –– Москва, 1999 – . Режим
доступа: http://elibrary.ru/defaultx.asp (дата обращения: 01.04.2017). – Яз. рус., англ.
2) Moodle [Электронный ресурс]:
система виртуального обучением: [база данных] / Даг. гос. ун-т. – Махачкала, г.
– Доступ из сети ДГУ или, после регистрации из сети ун-та, из любой точки,
имеющей доступ в интернет. – URL: http://moodle.dgu.ru/ (дата обращения:
22.03.2018).
3) Электронный каталог НБ ДГУ
[Электронный ресурс]: база данных содержит сведения о всех видах
лит, поступающих в фонд НБ ДГУ/Дагестанский гос. ун-т. – Махачкала, 2010 –
Режим доступа: http://elib.dgu.ru,
свободный (дата обращения: 21.03.2018).
4) Питонтьютор. Интерактивный учебник
языка Python [Электронный ресурс]:
система виртуального обучением: –– Москва, 2019 – .
URL: https://pythontutor.ru/lessons/
(дата обращения: 01.09.2019). – Яз. рус.
5) Программирование
на Python-Stepik [Электронный ресурс]: система
виртуального обучением: –– Москва, 2019 –
URL: https://stepik.org/course/67/promo
(дата обращения: 01.09.2019). – Яз. рус.
6)
Самоучитель Python [Электронный
ресурс]: система виртуального обучением: –– Москва, 2019 – URL: https://pythonworld.ru/samouchitel-python (дата обращения: 01.09.2019). –
Яз. рус.
7) Пособия для изучающих Python, разбор задач
любого уровня сложности на языке Питон [Электронный
ресурс]: система виртуального обучением: –– Москва, 2019 – URL: https://tproger.ru/tag/python/ (дата обращения: 01.09.2019). – Яз. рус.